7. Configuration de l'annuaire OpenLDAP avec Samba

(Source ÉOF) - Nous allons présenter l'utilisation d'un annuaire OpenLDAP en y connectant Samba. Comme Samba nécessite deux types de comptes : un compte POSIX, mais aussi un compte Samba, qui complètera les informations du compte POSIX. Nous allons ici centraliser ces deux comptes sur le même annuaire, ce qui facilitera l'administration de notre serveur. La configuration de Samba va rester très simple : nous allons mettre en place un serveur de fichiers autonome.

La première étape consiste à insérer le schéma correspondant à Samba et de l'intégrer à LDAP.

	# gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz \
	> /etc/ldap/schema/samba.schema 
	# nano -w slapd.conf
	...
	include /etc/ldap/schema/samba.schema
	...
	# /etc/init.d/slapd restart
	Stopping OpenLDAP: slapd.
	Starting OpenLDAP: running BDB recovery, slapd.
	#

La dernière étape est de modifier la configuration de Samba /etc/samba/smb.conf afin de lui indiquer où sont stockés ses comptes. Nous allons utiliser ici la directive passdb backend.

	# nano -w /etc/samba/smb.conf
	...
	passdb backend = ldapsam:ldap://localhost, guest
	ldap admin dn = "cn=admin,dc=mondomaine,dc=org"
	ldap ssl = off
	ldap delete dn = no
	ldap user suffix = ou=users
	ldap machine suffix = ou=machines
	ldap group suffix = ou=groups
	ldap suffix = dc=mondomaine,dc=org
	...

Nous spécifions un mot de passe pour que Samba puisse écrire dans notre annuaire. Pour cela nous utilisons la commande smbpasswd -w suivi de votre mot de passe :

	# smbpasswd -w MonMotDePasse
	Setting stored password for "cn=admin,dc=mondomaine,dc=org" in secrets.tdb
	#  

Ce mot de passe est alors stocké dans le fichier secrets.tdb

Il ne reste plus qu'à créer notre entrée dans Samba pour vérifier si notre utilisateur est bien présent.

	# smbasswd -a l-laforet

Vérifions maintenant si notre utilisateur est bien connu de Samba ? :

	# pdbedit -L 
	The LDAP server is succesfully connected
	pdb backend ldapsam:ldap://localhost has a valid init
	Trying to load: guest
	Attempting to find an passdb backend to match guest (guest)
	Found pdb backend guest
	pdb backend guest has a valid init
	smbldap_search: base => [dc=mondomaine,dc=org], filter => [(&(uid=*)(objectclass=sambaSamAccount))], scope => [2]
	ldapsam_setsampwent: 2 entries in the base dc=mondomaine,dc=org
	init_sam_from_ldap: Entry found for user: l-laforet
	Opening cache file at /var/run/samba/login_cache.tdb
	Looking up login cache for user l-laforet
	l-laforet:10000:l-laforet

Vérifier la validité de la connexion de notre utilisateur sur le partage donnees par :

	# smbclient -U l-laforet //srv-domaine/donnees