Je ne sais pas comment les packages Ubuntu actuels effectuent la configuration initiale d'OpenLDAP, mais dans les versions 10.04 et 12.04, ce processus ne tenait pas très bien compte de cn=config. S'il est défini, vous devriez trouver le mot de passe dans l'attribut olcRootPW
en /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
(c'est probablement encodé en base64).
Pour changer le mot de passe, utilisez ldapmodify
en tant que racine. Enregistrez ceci en tant que fichier LDIF rootpw_cnconfig.ldif
:
dn: olcDatabase={0}config,cn=config changetype: modify replace: olcRootPW olcRootPW: foobar123
Remarque : Pour changer le mot de passe root sur CentOS7, utilisez dn: olcDatabase={2}hdb,cn=config
au lieu de dn: olcDatabase={0}config,cn=config
.
Évidemment, définissez votre mot de passe sur autre chose que foobar123
. Ensuite, exécutez ldapmodify
:
$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f rootpw_cnconfig.ldif
Cela suppose que le serveur LDAP et le cn=config
la base de données est accessible via le protocole ldapi (-H ldapi:///
) et que l'authentification SASL externe (-Y EXTERNAL
) est activé et fonctionne, ce qui devrait être le cas par défaut sur les nouvelles configurations OpenLDAP dans Debian et Ubuntu. Si vous regardez /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
il doit contenir un attribut olcAccess
:
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external ,cn=auth manage by * break