[Résolu]Configuration d'OpenLDAP

Bonjour à toutes et à tous.

Voilà, j’ai fais de nombreuses recherches (google+forums) je n’ai pas trouvé de solution(s) à mon problème. Je m’explique, je travaille avec debian lenny sous virtualbox(machines de tests), et je souhaite mettre en place openLDAP jusque là tout va bien, pas de problème au niveau de l’installation.

Mais (il y a toujours un “mais” ^^) quand je veux le configurer c’est la cata, en effet je suis de nombreux tutoriels donc je configure mon slapd.conf. Je teste avec la ligne de commande:

slaptest -f /etc/ldap/slapd.conf

il me dit: config file testing succeeded

Cependant, au moment ou je veux faire: splapindex,j’ai le droit à un jolie:

WARNING!
Runnig as root!
There’s a fair chance slapd will fail to start.
Check file permissions!

(je précise que je stop slapd comme il est spécifié)

J’ai essayé différentes solutions comme changer les droits etc… mais toujours le même message qui revient, je désespère. :frowning:

Je travaille avec:
Debian Lenny :Linux debian 2.6.26-1-686
OpenLDAP 2.4.11-1.

Je vous remercie pour vos futures réponses :smt001

bonjour
A mon avis ton problème ne viens pas des droits sur ton fichier mais plutôt de la personne que tu a déclarer dans ton slapd.conf "possible aussi des droits que tu lui a donner"je m’explique
rootdn "cn=admin,dc=NOM DOMAINE,dc=EXTENSION "
exemple: rootdn “cn=admin,dc=forum.debian,dc=fr”

vérifie aussi au niveau de t’ai contrôle d’accès

[code]# Contrôle d’accès aux données

Basic ACL (deprecated in favour of ACLs in /etc/openldap/slapd.access.conf)

access to attr=userPassword
by self write
by anonymous auth
by dn=“cn=admin,dc=forum-debian,dc=fr” write
by * none

[/code]
stp affiche ton slapd.conf sa serras plus simple pour t’aider a trouver d’où viens exactement l’erreur

à mon avis ce n’est pas forcement en rapport avec les droits dans ldap (car slapd doit être arrété) c’est plutôt en rapport avec les droits des fichiers sur le serveurs.

tu exécutes ce programme en etant root sur ta machine. les fichiers qui vont être générés par ta commande ne seront sans doute pas pas lisibles par slapd. donc celui çi peut ne plus redémarrer.

essaye plutôt de faire tourner cette commande avec l’utilisateur spald (valide le nom de celui ci en faisant ‘getent passwd’)

#whoami
root
#su - slapd
$whoami
slapd
$/usr/sbin/slapindex
$exit
#

Merci pour vos réponses! :smt001

Alors voici mon slapd.conf:

# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

#######################################################################
# Global Directives:

# Features to permit
#allow bind_v2

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values
loglevel        none

# Where the dynamically loaded modules are stored
modulepath	/usr/lib/ldap
moduleload	back_hdb

# The maximum number of entries that is returned for a search operation
sizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
tool-threads 1

#######################################################################
# Specific Backend Directives for hdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend		hdb

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend		<other>

#######################################################################
# Specific Directives for database #1, of type hdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database        hdb

# The base of your directory in database #1
suffix          "dc=toto,dc=fr"

# rootdn directive for specifying a superuser on the database. This is needed
# for syncrepl.
rootdn          "cn=admin,dc=toto,dc=fr"

# Where the database file are physically stored for database #1
directory       "/var/lib/ldap"

# The dbconfig settings are used to generate a DB_CONFIG file the first
# time slapd starts.  They do NOT override existing an existing DB_CONFIG
# file.  You should therefore change these settings in DB_CONFIG directly
# or remove DB_CONFIG and restart slapd for changes to take effect.

# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0

# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057 for more
# information.

# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indexing options for database #1
index           objectClass eq

# Save the time that the entry gets modified, for database #1
lastmod         on

# Checkpoint the BerkeleyDB database periodically in case of system
# failure and to speed slapd shutdown.
checkpoint      512 30

# Where to store the replica logs for database #1
# replogfile	/var/lib/ldap/replog

# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=toto,dc=fr" write
        by anonymous auth
        by self write
        by * none

# Ensure read access to the base for things like
# supportedSASLMechanisms.  Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work 
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=admin,dc=toto,dc=fr" write
        by * read

# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
#        by dn="cn=admin,dc=toto,dc=fr" write
#        by dnattr=owner write

#######################################################################
# Specific Directives for database #2, of type 'other' (can be hdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database        <other>

# The base of your directory for database #2
#suffix		"dc=debian,dc=org"

Thomas.leclerc, j’ai essayé de faire comme tu m’as indiqué, mais apparament slapd se créé un utilisateur : openldap. Donc j’ai remplacé “su - slapd” par “su - openldap” mais rien ne se passe. Donc j’ai créé un utilisateur slapd, cependant il me dit:

slapd@debian:~$ /usr/sbin/slapindex 
could not open config file "/etc/ldap/slapd.conf": Permission denied (13)
slapindex: bad configuration file!

Je pense qu’il faut que je donne des droits à l’utilisateur slapd pour qu’il puisse avoir la permission d’ouvrir /etc/ldap/slapd.conf.

Encore merci pour votre aide. :smt001

je viens de regarder ton slapd.conf et y a un truc qui manque

[code]a un endroit au début tu as

rootdn directive for specifying a superuser on the database. This is needed

for syncrepl.

rootdn “cn=admin,dc=toto,dc=fr”
la il te manque le rootpw suivi du mots de passe crypter de part la commande slappaswd[/code]
après tu devrais avoir normalement quel que chose comme sa!

rootdn "cn=admin,dc=toto,dc=fr" rootpw {SSHA}jso956sZiopljlkjlkjkljf2M6iqrpMVV

regarde sur damstux http://damstux.free.fr/wiki/index.php?title=PDC_Samba_LDAPau niveau de LDAP tiens nous au courant … :wink: :smt006

J’ai fais comme tu m’as indiqué Zyriuse voici ce qu’il me dit (le méchant slapd):

debian:/etc/ldap# slapindex

WARNING!
Runnig as root!
There's a fair chance slapd will fail to start.
Check file permissions!

/etc/ldap/slapd.conf: line 108: rootdn is always granted unlimited privileges.
/etc/ldap/slapd.conf: line 125: rootdn is always granted unlimited privileges.

alors les lignes 108 et 125 (très précis le coco)sont:
ici 108: “by *none”

# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=toto,dc=fr" write
        by anonymous auth
        by self write
        by * none

et ici 125 : " by * read"

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=admin,dc=toto,dc=fr" write
        by * read

je comprends plus rien :smt102

okai !!
alors voici se que j ai trouver chez notre amie google
http://www.commentcamarche.net/forum/affich-10737932-configuration-openldap-sous-debian

il s’agirait d’un problème avec le paquet slapd est tu passer par apt-get ?

hi, c’est moi l’auteur de ces postes :mrgreen: .

En fait j’ai su que c’était la version 2.3.30-5 d’openLDAP qui était bugué. Donc je me suis dis que la version 2.4.11-1 ne devait plus avoir ce bug, mais faut croire que je me suis plantée :frowning: .

A ton avis devrais-je essayer d’installer la derniere version stable d’openldap à l’aide des fichiers sources? Apparament c’est assez chaud à tout compiler.

Merci pour ton aide

Bonjour

Excusez moi pour ce double post.

Savez vous comment faire pour que mon utilisateur slapd puisse avoir les mêmes droits que openldap et root sur le fichier slapd.conf:

drwxr-xr-x 4 root root 4096 fév 9 08:48 . drwxr-xr-x 97 root root 4096 fév 9 08:56 .. -rw-r--r-- 1 root root 245 oct 12 06:44 ldap.conf drwxr-xr-x 2 root root 4096 oct 12 06:45 sasl2 drwxr-xr-x 2 root root 4096 fév 9 08:48 schema -rw-r----- 1 root openldap 4746 fév 9 08:48 slapd.conf

Je vous remercie

si l’utilisateur système est openldap, tu n’as pas besoin de créer l’utilisateur slapd, évite de trop bricoler !!!

quels sont les messages d’erreur[quote=“Cendres”]j’ai essayé de faire comme tu m’as indiqué, mais apparament slapd se créé un utilisateur : openldap. Donc j’ai remplacé “su - slapd” par “su - openldap” mais rien ne se passe. [/quote]

il y a bien quelque chose qui doit s’aficher. si tu fais ‘whoami’, est ce qu’il te dis que tu est root ou openldap ?

Alors après la commande : getend passwd voici ce qu’il me met (j’ai couper, je met juste pour openldap créé automatiquement):

openldap:x:110:113:OpenLDAP Server Account,,,:/var/lib/ldap:/bin/false

Voici ce qui se passe avec whoami:

debian:~# whoami
root
debian:~# su - openldap
debian:~# 

Merci de m’accorder de votre temps

ouais, c’est le ‘/bin/false’ à la fin de la ligne qui t’empêche de faire un ‘su - openldap’.

essaye avec ‘su -m openldap’

bonjour
question tout bette a tu rempli l’annuaire de ton Openldap? avant de lancer la commande slapindex ?

Tout d’abord un grand merci à Thomas.leclerc, ca à l’air de fonctionner plus de message d’erreur, je vais enfin pouvoir avancer ^^, merci merci :smt001 . Peux tu m’expliquer à quoi cela était du? que signifie le “/bin/false”?

J’ai suivis ce tutoriel Zyriuse http://ferry.eof.eu.org/lesjournaux/ll/public_html/ch14s06.html qui me dit: Afin de générer les index que nous avons spécifié dans le fichier de configuration de notre annuaire, il est nécessaire d’utiliser la commande slapindex. Il faut en effet initialiser les index pour qu’OpenLDAP puisse ensuite les utiliser et les maintenir. L’opération de génération n’est à effectuer qu’une seule fois.

Un grand Merci (avec un M majuscule ^^) à tous, je vous tiens au courant et je n’oublirai pas le [résolu], j’attend de voir si j’ai d’autres problèmes (je n’espère pas :smt002 )

la commande getent passwd retourne les information sur les utilisateurs (inscrits dans les fichier passwd). à la fin de la ligne, tu vois le chemin vers le shell. le fait de mettre /bin/false fait qu’il n’y a pas de shell, donc tu ne peux pas utiliser ce compte pour te connecter 'c’est une sécurité)

mais si tu fais un su avec l’option ‘-m’ tu demandes à ne pas réinitialiser les variables d’environnement et conserver le même interpréteur de commandes ;

donc tu deviens l’utilisateur openldap mais tu gardes l’environnement de trvail de root.

après je ne sais pas si c’est très serieux de travailler comme ça, mais il ne faut pas en abuser, lances ta commande et fait exit pour retourner sur ton compte normal.

Merci beaucoup pour ces explications très claires :smt001