(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