我目前正在使用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”,这是正确的。为什么我会收到此错误?
答案 0 :(得分:2)
我有类似的问题。在我的情况下,我的dn是正确的,但它说“格式无效(第16行)......”。
这就是我解决这个问题的方法: 错误消息可能会产生误导,因为dn确实是正确的。但行号“(第5行)”是指向问题的准确指针。在你的情况下,我认为破折号' - '导致问题。尝试删除短划线,它可能会起作用!
答案 1 :(得分:0)
是条目的cn RDN吗?
在目录sn = john,ou = Users .....
中可以有一个条目sn:john
cn:doe
在这种情况下,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$
如果空白行带有空格,则会发生同样的问题。