将用户的 DN 从使用 CN 更新为使用 UID

Updating a user's DN from using CN to using UID

我正在寻找一种方法来更新用户的条目 DN:

dn: cn=Super,ou=Prod,ou=clients,dc=test,dc=com

对此:

dn: uid=SuperUID,ou=Prod,ou=clients,dc=test,dc=com

鉴于我的目录有多个ou,有些已经在他们的DN中使用了UID属性,所以我只需要更新这个ou。 另外,我的 ldap 服务器是 运行 openDJ。

我一直在这里和其他地方搜索,但找不到任何有效的答案。

我不断收到此错误:

Result Code:  65 (Object Class Violation)
Additional Information:  The modify DN operation for entry [...]  cannot be performed because the change would have violated the server schema: Entry [...] violates the Directory Server schema configuration because it is missing attribute cn which is required by objectclass person

我理解(嗯,有点)这个错误告诉我的是什么,但是我找不到解决这个问题的方法...

谢谢

您必须使用 ModDN 重命名条目。但是为了使条目符合模式(因为您正在更改命名属性),您必须保留以前的值。 以下更改将起作用:

ldapmodify -D cn=directory\ manager -w password -h localhost -p 1389

dn: cn=Super,ou=Prod,ou=clients,dc=test,dc=com
changetype: moddn
newrdn: uid=SuperUID
deleteoldrdn: false

您稍后可以使用修改操作修改 cn 属性以更改其值。