Я хорошо знаком с openldap
. Динамическая конфигурация для меня совершенно нова.
http://gos.si/blog/installing-openldap-on-debian-squeeze-with-olc
Но я не могу получить к нему доступ:
ldapsearch -b cn=config -D cn=admin,dc=domain -W
result: 32 No such object
Сначала я подумал, что это связано с ACL и удалил все, но без изменений.
ldapsearch -Y EXTERNAL -H ldapi: /// -b cn = config
работает
Так почему же olcRootDN не имеет прав? Также в графическом интерфейсе я не вижу cn = config. Заранее благодарим за любую помощь!
Итак, я отвечаю на него сам, понял, большая путаница и непонимание динамической конфигурации. Может быть, у кого-то такая же проблема:
Есть разница между olcRootDN
в dn: olcDatabase = {1} mdb, cn = config и dn: olcDatabase = {0} config, cn = config
в моем случае olcRootDN
в olcDatabase = {0} config, cn = config
вообще не был установлен. Поэтому я добавил его, как описано в ссылке, а также olcRootPW
.
Теперь я могу получить доступ к cn = config
в графическом интерфейсе Apache Directory Studio и отредактировать его удобно.Хорошо иметь два разных пароля, чтобы случайно не удалить что-то в cn = config
@Adambean спрашивает, как это сделал OP.
Один из способов сделать это - создать файл ldif (например, config.ldif), содержащий:
# uncomment this part, if there is no olcRootDN present
# use replace instead of add, if you want to change the root dn
#dn: olcDatabase={0}config,cn=config
#changetype: modify
#add: olcRootDN
#olcRootDN: cn=admin,cn=config
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW
olcRootPW: <secret>
Вы можете сгенерировать секрет, используя:
sudo ldappasswd -s <your password>
И измените его с помощью ldapmodify
sudo ldapmodify -Y EXTERNAL -H ldapi:// -f config.ldif
Это должно сработать.