Python-Ldap 库。导入 LDIF

标签 python openldap python-ldap ldif

是否可以像这样导入 LDIF

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-ldap 库(http://www.python-ldap.org/)?

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

附言。完整答案在这里 http://pastebin.com/eQU7xBfj

最佳答案

python-ldap 包含一个 LDIF Parser module .使用它来解析 LDIF 并将生成的字典提交给 ldap_connection.add_s()

示例用法:

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)

关于Python-Ldap 库。导入 LDIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861152/

相关文章:

python - 编码 Netbios 名称 python

ldap - 无法在 JXplorer 中为 LDAP 创建用户 - 我收到错误

python-ldap add_s 无法为具有 OBJECT_CLASS_VIOLATION 的 AD 用户添加属性

python - 如何将 Peewee 与 Tornado 完美结合使用

python 锁定和线程并发

python - 强制自定义类型参数的属性类型

gcc - python-ldap 3.4 在 Alpine 图像上安装失败

PHP ldap_* API : Limiting to base scope?

python - 如何检索 LDAP 数据库的所有属性