我无法向 LDAP 添加多条记录。新 DN 条目前有空白行,但似乎有些时候无法使用。
ldapadd -x -D cn=Manager,dc=hadoop,dc=local -w -f ldap.ldif
ldapadd:attributeDescription“dn”:(
第 10 行后可能缺少换行符,条目“uid=impala,ou=Users,dc=hadoop,dc=local”?)添加新
条目“uid=impala,ou=Users,dc=hadoop,dc=local”ldap_add:类型或值
存在(20)
附加信息:cn:值 #0 提供了多次
$vi ldap.ldif
dn: uid=impala,ou=Users,dc=hadoop,dc=local
objectClass: inetOrgPerson
uid: impala
sn: impala
givenName: impala
cn: impala
displayName: impala
dn: cn=impala,ou=Groups,dc=hadoop,dc=local
objectClass: top
objectClass: groupOfNames
cn: impala
member: uid=impala,ou=Users,dc=hadoop,dc=local
但是我可以逐一添加上述记录,没有任何问题。
答案1
笔记
用户473183469
通过他们的评论回答了这个问题,我将发布一个包含更多背景的官方答案,以使其更引人注目。
回答
使用 LDIF 文件时,您可以在单个文件中添加多个条目。每个条目必须至少用一个完全空白的行分隔。这就是你的问题,换行符旁边有一个空格来分隔两个条目。
如果您使用cat -A
或(如果不可用)cat -e
(cat -A
我的 Mac 上不可用),您会$
在每个换行符的末尾看到一个。在您的文件中,输出将如下所示。
❯ cat -e ldap.ldif
dn: uid=impala,ou=Users,dc=hadoop,dc=local$
objectClass: inetOrgPerson$
uid: impala$
sn: impala$
givenName: impala$
cn: impala$
displayName: impala$
$
dn: cn=impala,ou=Groups,dc=hadoop,dc=local$
objectClass: top$
objectClass: groupOfNames$
cn: impala$
member: uid=impala,ou=Users,dc=hadoop,dc=local$
换行符旁边的那个空格就是导致问题的原因。请注意可以使用多行来提供属性的长值,方法是用一个空格开始额外的行。LDAP 将在处理条目时连接这些行。此功能可能是导致问题的原因,因为ldapadd
它将两个条目解释为一个大条目。
答案2
您是否尝试过在条目之间使用 - ?
dn: uid=impala,ou=Users,dc=hadoop,dc=local
objectClass: inetOrgPerson
uid: impala
sn: impala
givenName: impala
cn: impala
displayName: impala
-
dn: cn=impala,ou=Groups,dc=hadoop,dc=local
objectClass: top
objectClass: groupOfNames
cn: impala
member: uid=impala,ou=Users,dc=hadoop,dc=local