LDIF文件错误??无效的格式?

时间:2012-05-28 16:20:18

标签: ldap ldif

我目前正在使用UNIX服务器上的LDAP。我现在的主要目的是通过命令行通过Ldapmodify修改目录中的两个条目。 命令如下:

ldapmodify -a -D 'cn=ldap,dc=cs,dc=ttu,dc=edu' \
  -w *password* -H *server address* -f Documents/user.ldif

user.ldif 文件如下:

dn: cn=*username*,cn=Users,dc=ttu,dc=edu  
changetype: modify  
replace: displayName  
displayName:  abc  
-
replace: loginShell  
loginShell: /bin/tc   
-

我尝试运行时遇到以下错误

ldapmodify: invalid format (line 5) entry: "cn=*username*,cn=Users,dc=ttu,dc=edu"

我检查了“dn”,这是正确的。为什么我会收到此错误?

4 个答案:

答案 0 :(得分:2)

我有类似的问题。在我的情况下,我的dn是正确的,但它说“格式无效(第16行)......”。

这就是我解决这个问题的方法: 错误消息可能会产生误导,因为dn确实是正确的。但行号“(第5行)”是指向问题的准确指针。在你的情况下,我认为破折号' - '导致问题。尝试删除短划线,它可能会起作用!

答案 1 :(得分:0)

是条目的cn RDN吗?

在目录sn = john,ou = Users .....

中可以有一个条目

sn:john

cn:doe

displayName:johnny

在这种情况下,RDN是用作参考的属性 dn:cn = doe,....

会出错,无论条目是否具有指定值的属性。 在您提供的示例中,DN是第一行,错误是第5行。 假设你把它放在一些批次中,也许某些条目在它的CN中有一些特殊的特征? 并且“用户”通常是“ou”或“dc”或其他东西,即使容器具有“cn”属性,其中“Users”作为cn值之一。条目是否由空的换行符分隔?在上次修改上一个条目后,你没有放减号,而不是一个(或多个)换行符吗?

哦,当把ldif放入许多条目(更改)时,用“-n”尝试它是明智的。而且(实际上由于某些原因我不记得)我个人更喜欢管道ldif而不是“-f”

cat user.ldif | ldapmodify ...选择......

PS。哈哈:)尝试删除“-a”,它实际上将ldapmodify变为ldapadd :)如果你想使用“简单”身份验证(使用-w密码),请添加“-x”。

答案 2 :(得分:0)

一定是破折号( - )

的字符编码问题

之前我遇到了同样的问题,因为我在Windows上编辑了文件并在Virtualbox的centOS上使用它

然后我使用touch在centos中创建了一个新文件,并使用vi对其进行了编辑,然后就可以了。

答案 3 :(得分:0)

我遇到了同样的问题。就我而言,在分隔条目的短划线( - )字符后面有一个额外的空格。

例如,请注意第5行短划线后的空格:

$cat -A sample.ldif 

dn: uid=noelp,ou=People,dc=example,dc=co,dc=us$
changetype: modify$
replace: employeeType$
employeeType: fulltime$
- $
replace: title$
title: Sr IT Analyst$
-$
replace: employeeNumber$
employeeNumber: 1299$

如果空白行带有空格,则会发生同样的问题。