Как изменить атрибуты ядра OpenLDAP

А именно, должен добавить я ORDERING caseIgnoreOrderingMatch к givenName и surname атрибуты. Я надеялся, что был некоторый способ сделать это использование ldapmodify но следующее не работает на меня (возможно, базовая схема только для чтения, но это дает мне синтаксическую ошибку):

$ ldapmodify -QY EXTERNAL -H ldapi:/// <<EOF
dn: cn=Subschema
changetype: modify
delete: attributetypes
attributetypes: ( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: first name
 (s) for which the entity is known by' SUP name )
-
add: attributetypes
attributetypes: ( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: first name
 (s) for which the entity is known by' SUP name ORDERING caseIgnoreOrderingMatch )
-
delete: attributetypes
attributetypes: ( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last (family)
  name(s) for which the entity is known by' SUP name )
-
add: attributetypes
attributetypes: ( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last (family)
  name(s) for which the entity is known by' SUP name ORDERING caseIgnoreOrderingMatch )
EOF

modifying entry "cn=Subschema"
ldap_modify: Invalid syntax (21)
    additional info: attributetypes: value #0 invalid per syntax
$

Я видел некоторые предложения для редактирования файлов схемы непосредственно, которые я не хотел делать, но что (останавливают slapd, редактирование /etc/openldap/schema/core.ldif, перезапустите slapd), кажется, не имеет никакого эффекта.

Какие-либо указатели на то, как это может быть сделано? Мое знание LDAP незначительно в лучшем случае таким образом, любая справка ценится!Спасибо.

0
задан 16 January 2015 в 02:29
2 ответа

Разобрался; Примеры, которые я использовал, были ориентированы на другой дистрибутив с немного другой конфигурацией - я использую Scientific Linux 6.5. Добавьте к этому мое невежество, и неудивительно, что это не сработало. Вот что сработало:

ldapmodify -QY EXTERNAL -H ldapi:/// <<EOF
dn: cn={1}core,cn=schema,cn=config
changetype: modify
delete: olcAttributeTypes
olcAttributeTypes: {1}( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last (f
 amily) name(s) for which the entity is known by' SUP name )
-
add: olcAttributeTypes
olcAttributeTypes: {1}( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last (f
 amily) name(s) for which the entity is known by' SUP name ORDERING caseIgnore
 OrderingMatch )
-
delete: olcAttributeTypes
olcAttributeTypes: {35}( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: fir
 st name(s) for which the entity is known by' SUP name )
-
add: olcAttributeTypes
olcAttributeTypes: {35}( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: fir
 st name(s) for which the entity is known by' SUP name ORDERING caseIgnoreOrde
 ringMatch )
EOF

А для прямого редактирования файла путь к файлу был /etc/openldap/slapd.d/cn=config/cn=schema/cn= {1} core.ldif , но использование ldapmodify - лучший метод.

0
ответ дан 24 November 2019 в 08:50

Честно говоря, не стоит возиться со стандартными классами объектов. То, как вы ответили на свой вопрос , работает ; однако ПУТЬ лучше определить вашу собственную локальную схему либо с новым классом структурных объектов (который может унаследоваться от другого), либо определить вспомогательный класс объектов и добавить его к вашим узлам.

Я уже ответил на аналогичный вопрос здесь: Проблемы Openldap с добавлением атрибута

Вы можете найти более чистые способы решения вашей проблемы там.

0
ответ дан 24 November 2019 в 08:50

Теги

Похожие вопросы