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

OPENLDAP: Как удалить запись o =?

Я создал организацию (o = otherorg, dc = example, dc = com) на моем сервере OpenLDAP, работающем на Debian stretch. Теперь я хочу удалить его, но ни один инструмент, который я пробовал, не позволяет мне это сделать. Ниже приведен фрагмент вывода slapcat. Я бы хотел удалить запись «dn: o = otherorg, dc = example, dc = com», которую я пытался использовать:

ldapdelete -x -W -D "cn=admin,dc=example,dc=com" "o=otherorg,dc=example,dc=com"

Я создал файл с именем delete.ldif, содержащий:

dn: o=otherorg,dc=example,dc=com
changetype: delete

и побежал:

 ldapmodify -Y EXTERNAL -H ldapi:/// -f /path/to/delete.ldiff

Все безуспешно

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.com
dc: example
structuralObjectClass: organization
entryUUID: 99585550-02ab-1038-9dc9-000000000000
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 19700101164420Z
entryCSN: 19700101164420.615825Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 19700101164420Z
contextCSN: 19700101173944.872394Z#000000#000#000000
contextCSN: 19700101173733.720551Z#000000#001#000000

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
structuralObjectClass: organizationalRole
creatorsName: cn=admin,dc=example,dc=com
userPassword:: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
entryUUID: 995956ee-02ab-1038-9dca-000000000000
createTimestamp: 19700101164420Z
entryCSN: 19700101164420.622825Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 19700101164420Z

dn: o=otherorg,dc=example,dc=com
entryUUID: 7a6cd5be-02b3-1038-8346-000000000000
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 19700101173944Z
entryCSN: 19700101173944.872394Z#000000#000#000000
objectClass: top
objectClass: glue
structuralObjectClass: glue
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 19700101173944Z

Запись можно удалить с помощью:

ldapdelete <dn>

или рекурсивно:

ldapdelete -r <dn>

Однако запись, которую вы пытаетесь удалить, является glue запись, с которой нельзя работать, используя обычные операции LDAP. Этот клей используется в отсылках, когда поддерево управляется другим DSA. Они также используются syncrepl как теневые базы данных, а также могут появиться из-за проблем с репликацией.

Чтобы такие записи считались обычными, добавьте -M возможность ldapsearch, ldapmodify или ldapdelete. Удалите этот тип записи, используя:

ldapdelete -M <dn>

Эта опция отправляет manageDsaIT контроль, см rfc3296:

Клиент может предоставить элементу управления ManageDsaIT операцию, чтобы указать, что операция предназначена для управления объектами в информационном дереве DSA (сервера). Этот элемент управления заставляет относящиеся к Справочнику записи (DSE), независимо от типа, обрабатываться как обычные записи, позволяя клиентам запрашивать и обновлять эти записи с помощью операций LDAP.