Добавление объектного класса с обязательным атрибутом к существующему узлу 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 не обрабатывают их должным образом.
-Джим