Samba et la gestion des utilisateurs


Au début, la gestion des utilisateurs était stockée dans un fichier smbpasswd.

Sous Unix, quand un utilisateur se connecte, nous avons besoin d'un certain nombre de renseignements : login, UID, GID, Home directory, shell. Sous Windows, c'est similaire sur le principe nonobstant quelques différences comme par exemple la particularité dans Windows de stocker les mots de passe deux fois, avec deux algorithmes de hachage différents qui puissent servir pour la série 9x, Me et la série NT, XP. Ainsi, dans le fichier smbpasswd, le mot de passe est stocké deux fois pour permettre une interopérativité avec la série 9x et la série NT :

Administrator:0:01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537:[U]:LCT42B1A64E:

Donc Samba stocke les mots de passe deux fois, car un utilisateur Samba sert à émuler un utilisateur Windows. Comme un utilisateur Samba est aussi un utilisateur Unix, cela impose d'avoir aussi un mot de passe en plus pour Linux. Finalement ce dernier mot de passe sous Unix ne semble pas important, pourtant il peut devenir important dans le cas où nous utiliserions Samba comme Contrôleur de Domaine avec en plus un serveur Unix implémenté par exemple pour le courriel qui impose de synchroniser tous les utilisateurs, ceux de Linux et ceux de Windows.


#adduser user - - - - - - - - - -> ajouter un utilisateur Unix avec son mot de passe
#smpasswd -a user - - - - - - - -> entrer un mot de passe Samba pour l'utilisateur "user"
#pdbedit -L -v user - - - - - - -> voir tous les renseignements stockés pour "user"


Backend


Les principaux : smbpasswd, stockage TDB, serveur MySQL, annuaire LDAP, NIS+, etc.

Au lieu de stocker les mots de passe dans le fichier smbpasswd, les versions récentes de Samba permettent de les stocker dans un fichier Trivial Data Base (TDB), un format de fichier "natif" puisque écrit pour Samba par son auteur Andrew Ridgell. C'est similaire à smbpasswd sur le principe tout en étant un peu plus performant. C'est géré dans un fichier et il y a une interaction entre Unix et Samba de cette façon.

L'autre possibilité est d'utiliser un serveur SQL (MySQL et PostgresSQL ), mais c'est moins supporté à cause des changements. Dans le paquet Debian de Samba, ce n'est pas compilé avec l'option par défaut MySQL. Il y a une discussion avec la Samba Team, parce que justement c'est plutôt déconseillé d'utiliser avec une base SQL car au fur et à mesure des versions, c'est souvent cassé.

Quant à lui, l'annuaire LDAP offre l'avantage de pouvoir stocker les utilisateurs Unix, au lieu d'un fichier /etc/passwd ou /etc/shadow. On peut donc tout stocker dans un annuaire LDAP, centaliser les mots de passe avec LDAP. Il y a un schéma dans LDAP qui correspond à Samba. Voir la partie consacrée à LDAP.