У меня есть следующий файл ldif, который я пытаюсь загрузить в openLDAP:
dn: cn=testSchemas,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: testSchemas
olcAttributeTypes ( 1.3.6.1.4.1.4203.666.1.90
NAME 'competence'
DESC 'The field an individual is qualified'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubStringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
olcAttributeTypes ( 1.3.6.1.4.1.4203.666.1.91
NAME 'spokenLanguage'
DESC 'The language spoken by a person.'
SUP preferredLanguage
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubStringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
olcObjectClasses ( 1.3.6.1.4.1.4203.666.2012.1
NAME 'inetOrgTestPerson'
DESC 'An extension of the inetOrgPerson objectClass to add some additional attributes'
SUP inetOrgPerson
STRUCTURAL
MUST competence
MAY spokenLanguage )
Я получаю сообщение об ошибке: ldapadd: недопустимый формат (строка 4), запись: cn = testSchemas, cn = schema, cn = config " и я не могу понять, хоть убей, что случилось. Я использую ubuntu 12.04 с openldap 2.4.28
Изменить: после исправления синтаксической ошибки отсутствующего ':' мне удалось добавить объект и атрибуты (или так я думал), но я не вижу их, когда выполняю поиск, я получаю сообщение об ошибке:
ldap_modify: Type or value exists (20)
additional info: modify/add: olcAttributeTypes: value #0 already exists
когда я пытаюсь снова добавить объекты, что означает, что они находятся в базе данных, но при поиске ничего не появляется.
Из того, что я вижу в вашем LDIF, вам не хватает двоеточия (:
) после olcAttributeTypes
и olcObjectClasses
ключевые слова. Должно получиться так:
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.90
NAME 'competence'
...