Я хорошо знаком с openldap
. Динамическая конфигурация для меня совершенно нова. Поэтому я хотел облегчить жизнь и изменить openldap
настройка через графический интерфейс Apache Directory Studio.
Openldap
установлен на Debian Jessie и версии slapd 2.4.40 + dfsg-1 + deb8u1 amd64
Пытался пойти по этому пути: 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 and 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 slappasswd
Затем просто скопируйте / вставьте {SHAA}blahblahhashvaluegoeshereblah
в olcRootPW: <field>
вашего файла ldif.
И измените его с помощью ldapmodify
sudo ldapmodify -Y EXTERNAL -H ldapi:// -f config.ldif
Это должно сработать.