Назад | Перейти на главную страницу

Как добавить новый атрибут к существующему объектному классу LDAP?

Я создал собственный объектный класс LDAP, но забыл пару атрибутов, прежде чем добавить его на свой сервер OpenLDAP. Я выполнил инструкции на этой странице документации Ubuntu: https://help.ubuntu.com/12.04/serverguide/openldap-server.html Я использую Ubuntu 12.04.

Итак, как мне добавить новый атрибут MAY к объектному классу, который уже применен к серверу?

В частности, для OpenLDAP, но было бы неплохо узнать, как это сделать и для Novell eDirectory.

Краткий ответ

Используйте ldapmodify точно так же, как и для обычной записи ldap с многозначными атрибутами.

Это в значительной степени то, что я ожидал, но я не был уверен на 100% из-за индексации {N}, которую вы видите, когда запускаете ldap-поиск схемы.

Длинный ответ

Сначала найдите dn вашей схемы. Что-то вроде cn = {4} test, cn = schema, cn = config Затем напишите файл ldif и примените его к своему каталогу. В Ubuntu 12.04 я применил его как root:

ldapmodify -Q -Y EXTERNAL -H ldapi://  -f test.ldif

У меня были проблемы с синтаксисом модификации ldif и с индексами {N}.

Итак, начало вашего файла ldif должно быть примерно таким:

version: 1

dn: cn={N}test,cn=schema,cn=config
changetype: modify

Чтобы изменить объектный класс:

delete: olcObjectClasses
olcObjectClasses: <old value>
-
add: olcObjectClasses
olcObjectClasses: <new value>

Чтобы изменить атрибут:

delete: olcAttributeTypes
olcAttributeTypes: <old value>
-
add: olcAttributeTypes
olcAttributeTypes: <new value>

Несколько советов по синтаксису, которые я понял:

  • Игнорируйте индексы {N} в вашем файле ldif. Они исправляются автоматически.
  • Вам действительно нужен {N} в DN вашей схемы.
  • Помните '-'между заявлениями.
  • Не ставьте новую строку после '-'. ldapmodify останавливается на этой новой строке, поэтому все, что находится после нее, не будет выполнено.
  • Добавьте новые атрибуты, прежде чем изменять объектный класс, чтобы включить их.
  • Удалите все символы табуляции. Они заставляют систему производить чепуху.