slapd.conf все еще работает в OpenLDAP 2.4, каким бы «не акцентированным» он ни был в документации.
Это старая настройка, но при поиске часто всплывают вопросы и ответы без ответа. Сначала запустите slappasswd для генерации пароля.
slappasswd
New password: ************
Re-enter new password: *************
{SSHA}OM5mbC3/kQPAg8MH6FOqXkATjLjt2IZ2
Затем используйте это значение для заполнения конфигурации вашего бэкэнда.
ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}qUoTRPwppaedqHQTgYOPYWokr3SiXjbK
E0F
Ваше dn может отличаться от dn, показанного здесь. Базы данных конфигов находятся в RHEL7, в /etc/openldap/slapd.d/cn=config. Теперь вы можете войти в систему, используя стандартный rootdn.
При желании вы можете установить ваше собственное значение для dn:
ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=manager,dc=example,dc=com
E0F
Вот мое рабочее решение:
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcRootDN=cn=admin,dc=my,dc=company,dc=com dn olcRootDN olcRootPW
Теперь создайте новый пароль:
NEW_PWD={{TYPE_NEW_PASSWORD_HERE}}
PWD_HASH=$(slappasswd -s ${NEW_PWD})
echo "Your password hash is \"${PWD_HASH}\"."
Вставьте следующий код:
ldapmodify -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={1}mdb,cn=config
replace: olcRootPW
olcRootPW: ${PWD_HASH}
E0F
Вы получите:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}mdb,cn=config
olcRootDN: cn=admin,dc=my,dc=company,dc=com
olcRootPW: {SSHA}k1S8N/A4eb7Ds8oBgAhb9TmPfVT9vl2U
Чтобы исправить доступ к двум паролям (старому и новому), вставьте :
OLD_PWD=admin
ldappasswd -h localhost -p 389 -x -D "cn=admin,dc=my,dc=company,dc=com" -w "${OLD_PWD}" -a "${OLD_PWD}" -s "${NEW_PWD}"