当前位置: 首页>>代码示例>>Python>>正文


Python smb_conf.SambaConf类代码示例

本文整理汇总了Python中mmc.plugins.samba.smb_conf.SambaConf的典型用法代码示例。如果您正苦于以下问题:Python SambaConf类的具体用法?Python SambaConf怎么用?Python SambaConf使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了SambaConf类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: changeUserPasswd

    def changeUserPasswd(self, uid, passwd, oldpasswd = None, bind = False):
        """
        change SAMBA user password

        @param uid: user name
        @type  uid: str

        @param passwd: non encrypted password
        @type  passwd: str
        """

        # Don't update the password if we are using smbk5passwd
        conf = SambaConf()
        if conf.isValueTrue(conf.getContent("global", "ldap passwd sync")) in (0, 1):
            userdn = self.searchUserDN(uid)
            r = AF().log(PLUGIN_NAME, AA.SAMBA_CHANGE_USER_PASS, [(userdn,AT.USER)])
            # If the passwd has been encoded in the XML-RPC stream, decode it
            if isinstance(passwd, xmlrpclib.Binary):
                passwd = str(passwd)
            s = self.l.search_s(userdn, ldap.SCOPE_BASE)
            c, old = s[0]
            new = old.copy()
            new['sambaLMPassword'] = [smbpasswd.lmhash(passwd)]
            new['sambaNTPassword'] = [smbpasswd.nthash(passwd)]
            new['sambaPwdLastSet'] = [str(int(time()))]
            # Update LDAP
            modlist = ldap.modlist.modifyModlist(old, new)
            self.l.modify_s(userdn, modlist)
            self.runHook("samba.changeuserpasswd", uid, passwd)
            r.commit()

        return 0
开发者ID:sebastiendu,项目名称:mmc,代码行数:32,代码来源:smb_ldap.py

示例2: backupShare

def backupShare(share, media, login):
    """
    Launch as a background process the backup of a share
    """
    r = AF().log(PLUGIN_NAME, AA.SAMBA_BACKUP_SHARE, [(share, AT.SHARE), (login, AT.USER)], media)
    config = BasePluginConfig("base")
    cmd = os.path.join(config.backuptools, "backup.sh")
    if share == "homes":
        #  FIXME: Maybe we should have a configuration directive to tell that
        #  all users home are stored into /home
        savedir = "/home/"
    else:
        smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
        savedir = smbObj.getContent(share, "path")
    # Run backup process in background
    shlaunchBackground(
        cmd
        + " "
        + share
        + " "
        + savedir
        + " "
        + config.backupdir
        + " "
        + login
        + " "
        + media
        + " "
        + config.backuptools,
        "backup share " + share,
        progressBackup,
    )
    r.commit()
    return os.path.join(config.backupdir, "%s-%s-%s" % (login, share, strftime("%Y%m%d")))
开发者ID:pavelpromin,项目名称:mmc,代码行数:34,代码来源:__init__.py

示例3: modShare

def modShare(
    name, path, comment, usergroups, users, permAll, admingroups, browseable=True, av=0, customparameters=None
):
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    smbObj.addShare(
        name, path, comment, usergroups, users, permAll, admingroups, browseable, av, customparameters, True
    )
    smbObj.save()
开发者ID:pavelpromin,项目名称:mmc,代码行数:8,代码来源:__init__.py

示例4: updateDomainNextRID

 def updateDomainNextRID(self):
     """
     Increment sambaNextRID
     """
     conf = SambaConf()
     domain = conf.getContent("global", "workgroup")
     result = self.search("(&(objectClass=sambaDomain)(sambaDomainName=%s))" % domain)
     dn, old = result[0][0]
     # update the old attributes
     new = old.copy()
     new['sambaNextRid'] = [ str(int(old['sambaNextRid'][0]) + 1) ]
     modlist = ldap.modlist.modifyModlist(old, new)
     self.l.modify_s(dn, modlist)
开发者ID:sebastiendu,项目名称:mmc,代码行数:13,代码来源:smb_ldap.py

示例5: getDomain

    def getDomain(self):
        """
        Return the LDAP sambaDomainName entry corresponding to the domain specified in smb.conf

        @return: the sambaDomainName entry
        @rtype: dict
        """
        conf = SambaConf()
        domain = conf.getContent("global", "workgroup")
        result = self.search("(&(objectClass=sambaDomain)(sambaDomainName=%s))" % domain)
        if len(result): ret = result[0][0][1]
        else: ret = {}
        return ret
开发者ID:sebastiendu,项目名称:mmc,代码行数:13,代码来源:smb_ldap.py

示例6: delShare

def delShare(name, file):
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    smbObj.delShare(name, file)
    smbObj.save()
    return 0
开发者ID:pavelpromin,项目名称:mmc,代码行数:5,代码来源:__init__.py

示例7: isProfiles

def isProfiles():
    """ check if global profiles are setup """
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    return smbObj.isProfiles()
开发者ID:pavelpromin,项目名称:mmc,代码行数:4,代码来源:__init__.py

示例8: isPdc

def isPdc():
    try:
        smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    except:
        raise Exception("Can't open SAMBA configuration file")
    return smbObj.isPdc()
开发者ID:pavelpromin,项目名称:mmc,代码行数:6,代码来源:__init__.py

示例9: smbInfoSave

def smbInfoSave(options):
    """save information about global section"""
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    return smbObj.smbInfoSave(options)
开发者ID:pavelpromin,项目名称:mmc,代码行数:4,代码来源:__init__.py

示例10: getSmbInfo

def getSmbInfo():
    """get main information of global section"""
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    return smbObj.getSmbInfo()
开发者ID:pavelpromin,项目名称:mmc,代码行数:4,代码来源:__init__.py

示例11: shareCustomParameters

def shareCustomParameters(name):
    """get an array of additionnal params about a share"""
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    return smbObj.shareCustomParameters(name)
开发者ID:pavelpromin,项目名称:mmc,代码行数:4,代码来源:__init__.py

示例12: shareInfo

def shareInfo(name):
    """get an array of information about a share"""
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    return smbObj.shareInfo(name)
开发者ID:pavelpromin,项目名称:mmc,代码行数:4,代码来源:__init__.py

示例13: addShare

def addShare(name, path, comment, perms, admingroups, recursive=True, browseable=True, av=0, customparameters=None):
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    smbObj.addShare(name, path, comment, perms, admingroups, recursive, browseable, av, customparameters)
    smbObj.save()
开发者ID:inkhey,项目名称:mmc,代码行数:4,代码来源:__init__.py

示例14: activate

def activate():
    """
     this function define if the module "base" can be activated.
     @return: return True if this module can be activate
     @rtype: boolean
    """
    config = SambaConfig("samba")

    if config.disabled:
        logger.info("samba plugin disabled by configuration.")
        return False

    if config.defaultSharesPath:
        if config.defaultSharesPath.endswith("/"):
            logger.error("Trailing / is not allowed in defaultSharesPath")
            return False
        if not os.path.exists(config.defaultSharesPath):
            logger.error("The default shares path '%s' does not exist" % config.defaultSharesPath)
            return False

    for cpath in config.authorizedSharePaths:
        if cpath.endswith("/"):
            logger.error("Trailing / is not allowed in authorizedSharePaths")
            return False
        if not os.path.exists(cpath):
            logger.error("The authorized share path '%s' does not exist" % cpath)
            return False

    # Verify if samba conf file exist
    conf = config.samba_conf_file
    if not os.path.exists(conf):
        logger.error(conf + " does not exist")
        return False

    # validate smb.conf
    smbconf = SambaConf()
    if not smbconf.validate(conf):
        logger.error("SAMBA configuration file is not valid")
        return False

    # For each share, test if it sharePath exists
    for share in getDetailedShares():
        shareName = share[0]
        infos = shareInfo(shareName)
        if infos:
            sharePath = infos["sharePath"]
            if sharePath and not "%" in sharePath and not os.path.exists(sharePath):
                # only show error
                logger.error("The samba share path '%s' does not exist." % sharePath)
        else:
            return False

    try:
        ldapObj = ldapUserGroupControl()
    except ldap.INVALID_CREDENTIALS:
        logger.error("Can't bind to LDAP: invalid credentials.")
        return False

    # Test if the Samba LDAP schema is available in the directory
    try:
        schema = ldapObj.getSchema("sambaSamAccount")
        if len(schema) <= 0:
            logger.error("Samba schema is not included in LDAP directory")
            return False
    except:
        logger.exception("invalid schema")
        return False

    # Verify if init script exist
    init = config.samba_init_script
    if not os.path.exists(init):
        logger.error(init + " does not exist")
        return False

    # If SAMBA is defined as a PDC, make extra checks
    if smbconf.isPdc():
        samba = SambaLDAP()
        # Create SAMBA computers account OU if it doesn't exist
        head, path = samba.baseComputersDN.split(",", 1)
        ouName = head.split("=")[1]
        samba.addOu(ouName, path)
        # Check that a sambaDomainName entry is in LDAP directory
        domainInfos = samba.getDomain()
        # Set domain policy
        samba.setDomainPolicy()
        if not domainInfos:
            logger.error(
                "Can't find sambaDomainName entry in LDAP for domain %s. Please check your SAMBA LDAP configuration."
                % smbconf.getContent("global", "workgroup")
            )
            return False
        smbconfbasesuffix = smbconf.getContent("global", "ldap suffix")
        if not smbconfbasesuffix:
            logger.error("SAMBA 'ldap suffix' option is not setted.")
            return False
        if ldap.explode_dn(samba.baseDN) != ldap.explode_dn(smbconfbasesuffix):
            logger.error("SAMBA 'ldap suffix' option is not equal to MMC 'baseDN' option.")
            return False
        # Check that SAMBA and MMC given OU are in sync
        for option in [
#.........这里部分代码省略.........
开发者ID:pavelpromin,项目名称:mmc,代码行数:101,代码来源:__init__.py

示例15: getACLOnShare

def getACLOnShare(name):
    smbObj = SambaConf(SambaConfig("samba").samba_conf_file)
    return smbObj.getACLOnShare(name)
开发者ID:pavelpromin,项目名称:mmc,代码行数:3,代码来源:__init__.py


注:本文中的mmc.plugins.samba.smb_conf.SambaConf类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。