如何向现有 LDAP 用户对象添加新属性

如何向现有 LDAP 用户对象添加新属性

我想为现有的 ldap 用户添加邮件属性。我认为使用 ldapmodify 是可行的,但不确定如何操作。我已经使用 phpldapadmin web GUI 手动完成了此操作,但我有 100 多个用户,不想为所有用户手动执行此操作。

谁能给我指明正确的方向。

答案1

$ ldapmodify -H ldap://yourhost -D cn=youradmin,dc=your,dc=domain -x -W
( enter password here )
dn: uid=username,ou=people,dc=your,dc=domain
changetype: modify
add: mail
mail: [email protected]

答案2

首先,我要指出的是B.4 部分Red Hat 目录服务器管理指南有关如何创建LDIF适合与 ldapmodify 一起使用的文件。首先,只为几百个用户创建条目。此文件将帮助您清除错误。一旦您熟悉了文件格式,就可以为其余 100 人左右创建条目。以下是单个条目的示例:

dn: cn=Joe Smith,dc=example,dc=com
changetype: modify
add: mail
mail: [email protected]

的合法值为changetype:、、和。如果使用,合法的修改为、和。第 3.3 节将为您提供所有这些如何工作的示例。addmodifydeletemodrdnchangetype: modifyadd:delete:replace:

然后,一旦您编写了文件,您就可以通过几种方式将其提交到 LDAP 服务器。一种方法是将文件直接提供给ldapmodify命令:

ldapmodify -x -h $LDAP_HOST -D $LDAP_BINDDN -W -f $FILE

-W开关指示在命令行中ldapmodify询问密码$LDAP_BINDDN。这意味着您不会将 LDAP 服务器的密码留在 shell 历史文件中。如果您确实想将密码合并到命令中ldapmodify,请使用-w $PASSWORD,。该-f $FILE开关指示ldapmodify检查哪个 LDIF 文件以了解正在实施的更改。

我其实不喜欢使用-f $FILE开关。将文件传递给ldapmodify需要 100% 确信我已正确编写该 LDIF 文件。如果我犯了错误,ldapmodify将退出而不告诉我我的错误。所以,我会使用第二种方法。使用ldapmodify我给出的命令作为示例,但不使用那个-f $FILE开关。没有那个开关,ldapmodify从中获取其修改STDIN。因此,我可以从我组装的这个 LDIF 文件中复制两个或三个条目,并将它们粘贴到我的 shell 中进行ldapmodify处理。我一次处理 2 - 4 个条目,并根据需要即时更正 LDIF 条目。这比直接将完美的 LDIF 文件传递​​给 慢ldapmodify,但比找出我在该文件中的拼写错误要快。

答案3

对于直接编辑 LDAP 条目,我更喜欢使用“ldapvi”,它为您提供了一个编辑器,您可以以更用户友好的方式进行更改。

http://www.lichteblau.com/ldapvi/

答案4

是的,您可以使用ldapmodify。您需要生成包含更改语句的 LDIF 文件,然后使用 将这些文件定向到您的 LDAP 服务器ldapmodify。有关更多信息,请阅读man ldapmodify,其中还包含示例。

相关内容