Добавление объектного класса с обязательным атрибутом к существующему узлу LDAP

Я пытаюсь настроить файл LDIF, который должен добавить новое значение атрибута к существующему узлу. Атрибут является обязательным атрибутом пользовательского объектного класса.

Вот содержимое файла LDIF 'add.ldif':


dn: cn=hna,cn=Users,DC=lan,DC=test,DC=de
changetype: modify
add: objectclass
objectclass: MyCustomObjectClass
-
add: myCustomAttribute
myCustomAttribute: someValue
-

Проблема: когда я пытаюсь добавить это на сервер LDAP, используя

ldapmodify -h ... -D ... -w ... -x -f add.ldif

Я получаю сообщение об ошибке

ldap_modify: Objectclass violation (65)
    additional info: 00002014: objectclass_attrs: attribute 'myCustomAttribute'
    on entry 'cn=hna,cn=Users,DC=lan,DC=test,DC=de' does not exist in the
    specified objectclasses

Когда я опускаю "добавить" myCustomAtribute, то, конечно, тогда я получаю:

ldap_modify: Objectclass violation (65)
    additional info: 00002014: objectclass_attrs: at least one mandatory attribute
    ('myCustomAttribute') on entry 'cn=hna,cn=Users,DC=lan,DC=test,DC=de'
    wasn't specified!

Есть идеи, что не так с моим подходом?

ldapmodify - это тот, что из OpenLDAP; Сервер является Samba V4 LDAP.

1 ответ

Это должно работать:

dn: cn=hna,cn=Users,DC=lan,DC=test,DC=de
changetype: modify
add: objectclass
objectclass: MyCustomObjectClass
add: myCustomAttribute
myCustomAttribute: someValue

ДОЛЖНА быть пустая строка после последней. "-" требуется только в том случае, если вы хотите выполнить отдельные операции изменения и сделать их атомарными. (т.е. все работают или все терпят неудачу).

Поскольку добавление объектного класса требует, атрибуты ДОЛЖНЫ происходить в одной и той же модификации.

Кстати, я заметил, что некоторые программы ldapmodify не обрабатывают их должным образом.

-Джим

Другие вопросы по тегам