openldap 2.3 和 2.4 之间存在差异 - 特别是 ldapmodify...
If no "changetype:" line is present, the default is "add" if the -a flag is set (or if the program was invoked as ldapadd) and "modify" otherwise.
If changetype is "modify" and no "add:", "replace:", or "delete:" lines appear, the default is "replace" for ldapmodify(1) and "add" for ldapadd(1).
有人知道如何让 2.4 版 ldapmodify 以同样的方式运行吗?现在我的脚本告诉我:
ldapmodify: modify operation type is missing at line xxxx
我尝试在尝试导入的文件中的每个 dn:条目后添加行“changetype:modify”,但这并没有解决问题。
那么,有人可以告诉这个愚蠢的家伙我错过了什么吗?
ldif 格式的示例:
# inactive, group, mydomain.net
dn: cn=inactive,ou=group,dc=mydomain,dc=net
cn: inactive
gidNumber: 9999
objectClass: top
objectClass: posixGroup
答案1
LDAP 2.3 至少只需要 changetype 属性:
dn: uid=HOST$,ou=Computers,dc=example,dc=edu
changetype: modify
sambaSID: S-1-5-21-3806935310-923960185-3344722049-877
版本 2.4 需要额外的属性来修改:
dn: uid=HOST$,ou=Computers,dc=example,dc=edu
changetype: modify
replace: sambaSID
sambaSID: S-1-5-21-3806935310-923960185-3344722049-877
看看最后一个例子中的字符串replace: sambaSID
。在我的 Debian 6 上,第一个 LDIF 出现错误
# ldapmodify -v -xWD cn=root,dc=ecample,dc=edu -f wsmodify.ldif
ldap_initialize( <DEFAULT> )
Enter LDAP Password:
ldapmodify: modify operation type is missing at line 3, entry "uid=HOST$,ou=Computers,dc=example,dc=edu"
第二个 LDIF 示例运行良好:
# ldapmodify -v -xWD cn=root,dc=example,dc=edu -f wsmodify.ldif
ldap_initialize( <DEFAULT> )
Enter LDAP Password:
replace sambaSID:
S-1-5-21-3806935310-923960185-3344722049-877
modifying entry "uid=HOST$,ou=Computers,dc=example,dc=edu"
modify complete
參閱
http://www.zytrax.com/books/ldap/ch14/有关ldapadd
和ldapmodify
和 的 详细信息http://www.zytrax.com/books/ldap/ch8/index.html#changetype了解有关附加属性的详细信息。
此致。