我想为现有的 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 节将为您提供所有这些如何工作的示例。add
modify
delete
modrdn
changetype: modify
add:
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”,它为您提供了一个编辑器,您可以以更用户友好的方式进行更改。
答案4
是的,您可以使用ldapmodify
。您需要生成包含更改语句的 LDIF 文件,然后使用 将这些文件定向到您的 LDAP 服务器ldapmodify
。有关更多信息,请阅读man ldapmodify
,其中还包含示例。