向 LDAP 添加几个新条目失败

向 LDAP 添加几个新条目失败

我无法向 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 -ecat -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

相关内容