Я новичок в администрировании OpenLDAP. Моя цель - научиться создавать собственные схемы и таким образом настраивать «мой» сервер каталогов.
Я пробовал добавить один необязательный атрибут - ipPhone. Создал схему (фиктивную), а затем преобразовал ее в файл LDIF ниже:
dn: cn=dummy,cn=schema,cn=config
changetype: add
objectClass: olcSchemaConfig
cn: dummy
dn: cn=dummy,cn=schema,cn=config
changetype: modify
#changetype: add
add: olcAttributeTypes
olcAttributeTypes: {0}( 1.3.6.1.4.1.4203.666.100.123 NAME 'ipPhone'
DESC 'ip telephone internal or routable number' SUP telephoneNumber )
-
add: olcObjectClasses
olcObjectClasses: {0}( 1.3.6.1.4.1.4203.666.100.1 NAME 'dummyPerson'
DESC 'Dummy-server user' SUP inetOrgPerson STRUCTURAL MAY ipPhone )
Когда я пытаюсь добавить эту схему с помощью ldapmodify (1), я получаю следующую ошибку:
modifying entry "cn=dummy,cn=schema,cn=config"
ldap_modify: No such object (32)
matched DN: cn=schema,cn=config
Что я сделал не так? Кроме того, где я могу прочитать о «changetype»? Я не уверен, где использовать «изменить» или «добавить» для моего LDIF.
Спасибо.
изменить тип является глобальным для всей записи. Требуется один тип изменения ниже dn: в вашем примере 'add' является правильным, так как dn раньше не существовал в каталоге.
Затем нужно сложить пары:
attribute_type: attribute_value
В Добавить, заменить или Удалить ключевые слова здесь неуместны: они ожидаются с changetype: modify
; по той же причине дефис (-) для разделения атрибутов неуместен.
Весь ldif будет выглядеть так:
dn: cn=dummy,cn=schema,cn=config
changetype: add
cn: dummy
objectClass: olcSchemaConfig
olcAttributeTypes: {0}( 1.3.6.1.4.1.4203.666.100.123 NAME 'ipPhone'
DESC 'ip telephone internal or routable number' SUP telephoneNumber )
olcObjectClasses: {0}( 1.3.6.1.4.1.4203.666.100.1 NAME 'dummyPerson'
DESC 'Dummy-server user' SUP inetOrgPerson STRUCTURAL MAY ipPhone )