首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python库。进口LDIF

Python库。进口LDIF
EN

Stack Overflow用户
提问于 2015-03-04 17:38:23
回答 2查看 5.3K关注 0票数 2

有可能像那样进口LDIF吗?

代码语言:javascript
复制
dn: cn=vpupkin,cn=people,ou=company,dc=domain,dc=com
c: UA
cn: vpupkin
employeetype: Indoor Front-end developer
gidnumber: 500
givenname: Vasya
homedirectory: /home/vpupkin
host: example.com
l: Kyiv
loginshell: /bin/bash
mail: vpupkin@domain.com
o: Microsoft
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
objectclass: shadowAccount
objectclass: ldapPublicKey
objectclass: extensibleObject
labeleduri: skype://test
sn: Pupkin
sshpublickey: ssh-rsa key
st: Trudova, 15
telephonenumber: 7777777777
uid: vpupkin
uidnumber: 1000
userpassword: {SHA}fEqNCco3Yq9h5ZUglD3CZJT4lBs=

使用python库(http://www.python-ldap.org/)?

是的,我可以以http://www.grotan.com/ldap/python-ldap-samples.html#add的方式向LDAP添加新记录,但是我不确定这样的文本ldif文件。

PS。完整答案在这里,http://pastebin.com/eQU7xBfj

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-05 13:45:36

python包含一个LDIF解析模块。使用它解析LDIF并将结果字典提交给ldap_connection.add_s()

示例用法:

代码语言:javascript
复制
from StringIO import StringIO
import ldif
from ldap import modlist

ldif_file = StringIO("""dn: cn=vpupkin,cn=people,ou=company,dc=domain,dc=com
c: UA
cn: vpupkin
""")

parser = ldif.LDIFRecordList(ldif_file)
parser.parse()

for dn, entry in parser.all_records:
    add_modlist = modlist.addModlist(entry)
    ldap_conn.add_s(dn, add_modlist)
票数 5
EN

Stack Overflow用户

发布于 2015-04-03 19:15:26

您也可以尝试以下方法:

代码语言:javascript
复制
class MyLDIF(ldif.LDIFParser):
   def __init__(self, input):
      ldif.LDIFParser.__init__(self,input)

   def handle(self,dn,entry):
      ldif = modlist.addModlist(entry)
      l = ldap.open('localhost', 389)
      try:
          l.bind("cn=Manager,dc=exapmle,dc=org", "Secret123")
      except ldap.SERVER_DOWN, e:
          print "ldap server is down"
      else:
          l.add_s(dn, ldif)

 def enable_schema():
    parser = MyLDIF(open('/tmp/a1.ldif', 'rb'))
    parser.parse()

我使用python-ldap文档中给出的例子导出了上述解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28861152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档