Bon, une conf par défaut est importée de dieu sait ou, et le reconfigure ne marche pas, c’est un fait.
Mais admettons, peut etre il a t’il une solution pour créer la base à la mano :
Arret du deamon
/etc/init.d/slapd stop
Destruction de la base :
rm /var/lib/ldap/*
modification du fichier de création de la base : Je remplace toutes les occurrences de dc=fr par dc=mondomaine,dc=fr. C’est ce que devrait me faire l’assistant de configuration quand je lui donne pour DN mondomaine.fr.
Fichier original :
[color=#0080FF]root@xxx:/etc/ldap# cat slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif[/color]
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth manage by * break
olcRootDN: cn=admin,cn=config
structuralObjectClass: olcDatabaseConfig
entryUUID: 5d7d08ca-df9c-1030-9193-87360a98f803
creatorsName: cn=config
createTimestamp: 20120130144223Z
entryCSN: 20120130144223.347902Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20120130144223Z
root@xxx:/etc/ldap# cat slapd.d/cn\=config/olcDatabase\=\{1\}hdb.ldif
dn: olcDatabase={1}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=fr
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
s auth by dn="cn=admin,dc=fr" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=fr" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=fr
olcRootPW:: xxx
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
structuralObjectClass: olcHdbConfig
entryUUID: 5d7d82d2-df9c-1030-919b-87360a98f803
creatorsName: cn=admin,cn=config
createTimestamp: 20120130144223Z
entryCSN: 20120130144223.351026Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20120130144223Z
On y trouve donc la fameuse conf que debian me met par defaut quand j’installe le paquet : cn=admin,dc=fr et que dpkg-reconfigure refuse de modifier.
Après forçage à la main donc
Fichier après modif :
[color=#0080FF]root@xxx:/etc/ldap# cat slapd.d/cn\=config/olcDatabase\=\{1\}hdb.ldif[/color]
dn: olcDatabase={1}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=domaine,dc=fr
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
s auth by dn="cn=admin,dc=domaine,dc=fr" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=domaine,dc=fr" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=domaine,dc=fr
olcRootPW:: xxx
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
structuralObjectClass: olcHdbConfig
entryUUID: 5d7d82d2-df9c-1030-919b-87360a98f803
creatorsName: cn=admin,cn=config
createTimestamp: 20120130144223Z
entryCSN: 20120130144223.351026Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20120130144223Z
Voila, sur ce je redémarre slapd :
/etc/init.d/slapd start
Puisque qu’il n’a plus de base de donnée, il va piocher dans ses fichier de conf et créé la nouvelle base à partir de celui que j’ai modifié :
root@xxx:/etc/ldap# ll /var/lib/ldap
total 1580
-rw-r--r-- 1 openldap openldap 2048 30 janv. 17:28 alock
-rw------- 1 openldap openldap 24576 30 janv. 17:28 __db.001
-rw------- 1 openldap openldap 376832 30 janv. 17:28 __db.002
-rw------- 1 openldap openldap 2629632 30 janv. 17:28 __db.003
-rw------- 1 openldap openldap 163840 30 janv. 17:28 __db.004
-rw------- 1 openldap openldap 1277952 30 janv. 17:28 __db.005
-rw------- 1 openldap openldap 32768 30 janv. 17:28 __db.006
-rw-r--r-- 1 openldap openldap 96 30 janv. 17:28 DB_CONFIG
-rw------- 1 openldap openldap 8192 30 janv. 17:28 dn2id.bdb
-rw------- 1 openldap openldap 32768 30 janv. 17:28 id2entry.bdb
-rw------- 1 openldap openldap 10485760 30 janv. 17:28 log.0000000001
Et c’est la que ca devient chelou :
Pour me connecter à la base, l’utilisateur qui fonctionne maintenant est cn=admin,dc=domaine,dc=fr (+pass) => Parfait!
Une fois la connexion établie, impossible de trouver l’objet racine dc=domaine,dc=fr (ni dc=fr tout seul d’ailleurs, qui fonctionnait avant ces modif). => Fail!
Avis aux pro d’openLDAP donc :
-
Cette démarche pour “changer” de base LDAP vous semble elle correcte? (j’ai essayé ca mais egalement une armée de tutos differents chopés sur google sans plus de résultats.
-
Y a t’ils d’autre fichiers de configuration pour 1 base openldap que /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif? Ca serait l’expliquation idéal pour cet objet racine non trouvé… D’un autre coté j’ai balancé des cat * | grep “dc=fr” tout azimut dans tous les rép et sous rep qui me semblaient liés à slapd et je n’ai trouvé que ce fichier…
-
Est ce que j’ai un moyen d’avoir plus d’infos sur ce qui ce passe?(logs…)
-
Si je suis dans une impasse avec ce paquet, quelle solution de contournement me reste t’il pour faire tourner un serveur ldap sur cette debian? choper les sources et recompiler l’bordwell?
Voila, merci beaucoup!