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

как изменить схему в openldap

Итак, у меня есть новая установка openldap на машине с debian 9, которая в настоящее время выглядит как

Это будет база данных для телефонных номеров, я буду использовать этот пример: база данных будет разделена на город - улицы - и людей, которые живут на этих улицах.

Должно получиться так: dc = city -> ou = street -> cn = nameofperson

Пока все хорошо, я пытаюсь создать первый DC, например Нью-Йорк, вот так:

root@ldap-test:/etc/ldap/ldif-import# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/ldif-import/createcn.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=NewYork"
ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

вот так выглядит файл ldif:

dn: cn=NewYork
dc: NewYork
distinguishedName: dc=NewYork
name: NewYork
objectClass: top
objectClass: dcObject

Поскольку это не сработало, я подумал о другом способе, чтобы поместить улицы в nodomain, просто чтобы проверить, будет ли это работать таким образом, но похоже, что в схеме отсутствуют отличительные имя и имя. Я просмотрел схемы по умолчанию, и в core.ldif есть эти записи, но они закомментированы.

Поэтому я не могу загрузить этот ldif:

dn: ou=broadway,dc=nodomain
distinguishedName: ou=broadway,dc=nodomain
name: broadway
objectClass: top
objectClass: organizationalUnit
ou: broadway

.

root@ldap-test:/etc/ldap/ldif-import# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/ldif-import/broadway.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "ou=broadway,dc=nodomain"
ldap_add: Object class violation (65)
        additional info: attribute 'distinguishedName' not allowed

Таким образом, загрузка различающегося имени в схему, но она показывает добавление новой записи

"cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
        additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.49"

Я не понимаю почему, потому что он даже не загружен в /etc/ldap/slapd.d/cn=config/cn=schema/cn={*}*.ldif

Кто-нибудь знает, что делать?

  • name не является обычно используемым атрибутом, хотя cn (commonName) является.
  • Не пытайтесь добавить distinguishedName. dn уже справляется с этим. dn и distinguishedName псевдонимы для одного и того же атрибута, но только dn следует использовать для ldapmodify операции. Это включает ldapadd.

Ваш первый ldif не работает, потому что:

  1. Ваш сервер ldap не настроен для обработки cn=NewYork namingContext. 2 Вы пытаетесь добавить атрибут различающееся имя.
  2. objectClass: dcObject не имеет атрибута name

Ваш второй ldif не работает, потому что:

  1. Вы пытаетесь добавить атрибут отличительное имя.
  2. objectClass: organizationalUnit не имеет атрибута name

Боковое примечание: атрибуты ldap, включая части, используемые в rdn, могут содержать пробелы. При необходимости используйте кавычки.