Я создал эту нестандартную и очень простую схему:
objectclass ( 2.25.2.2.1
NAME 'myObjectClass'
DESC 'myObjectClass objectclass'
STRUCTURAL
MUST ( cn )
)
Я добавил его без проблем с этим файлом myObjectClass.ldif:
dn: cn=myObjectClass,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: myObjectClass
olcObjectClasses: {0}( 2.25.2.2.1 NAME 'myObjectClass' DESC 'myObjectClass objectclass' STRUCTURAL MUST cn )
Используя ldapmodify:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f myObjectClass.ldif
Теперь пытаюсь удалить с помощью delete.ldif:
dn: cn=schema,cn=config
changetype: modify
delete: objectClass
objectClass: 2.25.2.2.1
При использовании ldapmodify всегда получайте ldap_modify: сервер не желает выполнять (53):
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f delete.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=schema,cn=config"
ldap_modify: Server is unwilling to perform (53)
Я запускаю сервер Ubuntu 14.04 с OpenLDAP 2.4.31
Я искал это в официальных документах:
А.2.2. Лучшая функциональность cn = schema
В 2.3 вы могли только добавлять новые элементы схемы, но не удалять или изменять существующие элементы. В версии 2.4 вы можете изменять схему по желанию. (За исключением, конечно, жестко запрограммированной схемы системы.)
Может кто-нибудь поделиться подсказкой?
Заранее спасибо!
Я знаю, что это старая ветка, но, возможно, мой ответ поможет кому-нибудь еще (включая меня в будущем)
Моя версия OpenLDAP: slapd (Ubuntu) (10 апреля 2019 г. 12:53:11)
Я знаю, что мы никогда не должны вручную редактировать файлы конфигурации, но я уже использую ldapmodify, ldapdelete ничего не работает. Это мое последнее средство, которое действительно работает.
cd /etc/ldap
mv slapd.d /var/backups/slapd.d.bak
mkdir slapd.d
slapcat -n0 -F /etc/ldap/slapd.d.old/ > /tmp/config-in-portable-format.ldif
Отредактируйте файл /tmp/config-in-portable-format.ldif здесь ...
slapadd -n0 -F /etc/ldap/slapd.d -l /tmp/config-in-portable-format.ldif
chown -R openldap:openldap slapd.d/
chmod -R 755 slapd.d/
/etc/init.d/slapd restart
Способ изменения конфигурации схемы в версии 2.4 сервера Openldap:
затем
остановка slapd с помощью slapcat для экспорта динамической конфигурации в LDIF Изменение экспорта LDIF для удаления рассматриваемой схемы Удалите (или переименуйте) ваш старый каталог динамической конфигурации slapadd обновленный LDIF start slapd
Согласно этот разговор на официальном сайте.