2

我目前正在使用 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

4 回答 4

2

我有一个类似的问题。就我而言,我的 dn 是正确的,但它说 "invalid format (line 16) ..." 。

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

于 2014-02-24T23:48:40.070 回答
0

肯定是dash(-)的字符编码问题

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

然后我在centos中使用touch并编辑了一个新文件,vi它可以工作。

于 2013-01-12T04:32:33.860 回答
0

是条目的 cn RDN 吗?

可以在目录 sn=john, ou=Users 中有一个条目.....


sn:约翰

CN: 母鹿

显示名称:约翰尼

RDN 是用作参考的属性,在本例中为 dn: cn=doe,....

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

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

猫用户.ldif | ldapmodify ...选择...

?

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

于 2012-05-28T17:15:31.490 回答
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$

同样的问题也可能发生在后面有空格的空行上。

于 2018-03-21T20:42:12.420 回答