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

Как с помощью ldapdelete удалить неправильно настроенную базу данных olc?

Я шел через этот учебник и продолжал получать ошибки - вероятно, потому что я набирал его вручную - поэтому я повторил попытку, выполнив его после ввода в

# Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=example,dc=local
olcDbDirectory: /var/lib/ldap

Это сработало, поэтому я ввел остальные и повторно выполнил:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif

и теперь он говорит

ldap_add: Other (e.g., implementation specific) error (80)
    additional info: <olcSuffix> namingContext "dc=home,dc=local" already served by a preceding hdb database

Что, как я догадываюсь, означает, что он не может завершить ldapadd, потому что он уже существует под тем же именем.

Я попытался удалить его с помощью (отсюда):

sudo ldapdelete 'dc=example,dc=local'

и он запрашивает пароль, из которого мой пароль не работает, и ничего не было установлено в качестве olcRootPW при начальной настройке.

Как мне использовать ldapdelete в этом контексте, чтобы я мог повторно настроить эту базу данных?

Обычно процесс начальной настройки для cn = config не очень-то просто, и есть много способов выстрелить себе в ногу в процессе. Однако помните, что cn = config - это хранятся в файлах формата LDIF в slapd.d (обычно в ${prefix}/etc/openldap/) и их можно редактировать вручную (осторожно, пока slapd не запущен). Так что, если вы заблокировали себя (без RootDN / RootPW) или полностью испортили свой cn = config как-то там всегда можно исправить.

Хороший способ получить базовую конфигурацию - это сделать это в старом стиле. slapd.conf мода, а затем преобразовать его в slapd.d (с помощью slaptest -f -F) после сортировки основных вещей (базы данных, модули и RootDN / RootPW).

Не удалось понять, как удалить базу данных, но я только начал, поэтому я очистил slapd и ldap-utils.

sudo apt-get purge slapd ldap-utils

и переустановил.