예제 #1
0
파일: msec.py 프로젝트: eugeni/msec
            log.error(_("No custom file permissions for level '%s'.") % level)
        log.info(_("Saving file permissions to '%s' level.") % level)
        # updating base level
        permconf.reset()
        permconf.merge(standard_permconf, overwrite=True)
    else:
        msec_config.load()

    # load base levels
    baselevel_name = msec_config.get_base_level()
    if baselevel_name:
        levelconf = config.load_defaults(log, baselevel_name, root=root)
        standard_permconf = config.load_default_perms(log, baselevel_name, root=root)

    # load variables from base levels
    config.merge_with_baselevel(log, msec_config, msec_config.get_base_level(), config.load_defaults, root='')
    config.merge_with_baselevel(log, permconf, msec_config.get_base_level(), config.load_default_perms, root='')

    # saving current setting as new level
    if save:
        newlevel = config.MsecConfig(log, config=config.SECURITY_LEVEL % (root, level))
        newlevel.merge(msec_config, overwrite=True)
        # update new level name
        newlevel.set("BASE_LEVEL", level)
        newlevel.save()
        # saving new file permissions, if any
        newpermlevel = config.PermConfig(log, config=config.PERMISSIONS_LEVEL % (root, level))
        newpermlevel.merge(permconf, overwrite=True)
        newpermlevel.save()
        sys.exit(0)
예제 #2
0
파일: msecperms.py 프로젝트: eugeni/msec
        log = Log(log_path="%s%s" % (root, config.SECURITYLOG), interactive=True, log_syslog=False, log_level=log_level, quiet=quiet)
    else:
        log_level = logging.WARN
        log = Log(log_path="%s%s" % (root, config.SECURITYLOG), interactive=True, log_syslog=False, log_level=log_level, quiet=quiet)

    # loading msec config
    msec_config = config.MsecConfig(log, config="%s%s" % (root, config.SECURITYCONF))
    msec_config.load()
    # find out the base level
    base_level = msec_config.get_base_level()
    # loading permissions
    permconf = config.PermConfig(log, config="%s%s" % (root, config.PERMCONF))
    permconf.load()

    # load variables from base level
    config.merge_with_baselevel(log, permconf, base_level, config.load_default_perms, root='')

    # merge with a legacy perm.local if exists
    if os.access("%s/etc/security/msec/perm.local" % root, os.R_OK):
        permlocal = config.PermConfig(log, config="%s/etc/security/msec/perm.local" % root)
        permlocal.load()
        permconf.merge(permlocal, overwrite=True)

    # reloading levelconf for base level
    levelconf = config.load_default_perms(log, base_level, root=root)

    # load the main permission class
    perm = PERMS(log, root=root)
    # check permissions
    changed_files = perm.check_perms(permconf, files_to_check=args)