首页 > 解决方案 > 在 LDAP 中一次更改多个 UID 的单个属性的值

问题描述

我有一个 LDAP 中存在的几个用户的 uid 列表,我需要将所有这些 uid 的一个属性的值替换为一个新值。有没有办法通过 Apache Directory Studio 立即完成此操作,而无需手动编辑每个条目。我对此很陌生,这不是我的专业领域。另外,我知道只有 Apache Directory Studio 可以使用 LDAP 值。如果有人可以提供相同的输入,那就太好了。

标签: ldapforgerockapache-directory

解决方案


在 Apache Directory Studio 中,您可以右键单击连接并选择“导入”,然后选择“LDIF 导入”。该文件看起来像这样

dn: cn=user1FQDN,ou=OrgUnit,o=MyOrg
changetype: modify
replace: TheAttribute
TheAttribute: NewValue
-

dn: cn=user2FQDN,ou=OrgUnit,o=MyOrg
changetype: modify
replace: TheAttribute
TheAttribute: NewValue
-

dn: cn=user3FQDN,ou=OrgUnit,o=MyOrg
changetype: modify
replace: TheAttribute
TheAttribute: NewValue
-

当我尝试在许多帐户上设置相同的值时,我将编写一个快速脚本来获取用户 DN 列表并编写其余的 LDIF 内容。

其中“dn”值是每个用户的完全限定 DN,TheAttribute 是您要更新的属性的名称,NewValue 是您要写入 TheAttribute 的值。

使用 LDIF 导入更改时要小心——您可以很快引入大量更改,但也可能很快搞砸很多帐户。您需要了解更新属性的“changetype:修改” 更新可能是删除属性,但更改类型仍然是修改)和删除对象的“更改类型:删除”之间的区别。您还需要了解如何修改/删除操作。仅使用“changetype: modify”和“delete: TheAttribute”会删除属性中的所有内容:

dn: cn=user1FQDN,ou=OrgUnit,o=MyOrg
changetype: modify
delete: TheAttribute
-

如果要删除多值属性的单个值,则需要使用:

dn: cn=user1FQDN,ou=OrgUnit,o=MyOrg
changetype: modify
delete: TheAttribute
TheAttribute: ValueToDelete
-

指定要删除的TheAttribute。


推荐阅读