Я создал организацию (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.