2016-12-18 14 views
1

Я ищу способ, чтобы обновить запись пользователя DN из этого:Обновление DN пользователя с помощью CN с помощью UID

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

Для этого:

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

Учитывая, что мой каталог имеет несколько ou, а некоторые уже используют атрибут UID в своем DN, поэтому мне нужно обновить только это. Кроме того, на моем сервере 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 

Я понимаю (ну, вроде), что эта ошибка говорит мне, но я не могу найти способ обойти это, чтобы исправить мою проблему ...

Спасибо

ответ

2

Вы должны использовать 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 

Вы можете позже изменить атрибут сп, чтобы изменить его значение, используя операцию Modify.

+0

Спасибо Людовик, я должен был попытаться установить deleteoldrdn на 0 .... – Pier