Я шел через этот учебник и продолжал получать ошибки - вероятно, потому что я набирал его вручную - поэтому я повторил попытку, выполнив его после ввода в
# 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
и переустановил.