Samba – Gestion des utilisateurs

Introduction

Ce document va expliquer comment gérer les utilisateurs et les groupes sur un serveur Samba configuré en PDC.

Cela s’applique aussi bien à une distribution Linux, testé sur Debian Sarge & Etch, que sur FreeBSD, testé en 6.2.

 

Prérequis

Il faudra avoir au minimum un Samba configuré en PDC, pour cela vous pouvez suivre le document suivant: Configuration du PDC en backend LDAP et éventuellement le document suivant: Configuration du BDC en backend LDAP si vous voulez un ou plusieurs BDC.

De toutes les manières, nous travaillerons uniquement sur le PDC qui est aussi le maître LDAP car les BDC sont en lecture seule.

Dans notre cas où nous utilisons le LDAP comme backend aussi bien pour Samba que pour les utilisateurs Posix, je considère que vous avez suivi le document suivant: Configuration LDAP du serveur pour l’organisation de l’annuaire et la déclaration des utilisateurs Posix, ainsi que le document suivant: Configuration client pour que les comptes utilisateurs soient accessibles depuis le système.

 

Les utilisateurs

Samba fait correspondre des utilisateurs Windows à des utilisateurs locaux au serveur. Cela veut donc dire que pour chaque utilisateur Windows, il faudra un utilisateur Posix.

Il faut donc créer un utilisateur Posix par une entrée LDAP puis le rendre « compatible » avec Samba. Comme vous avez suivi mon document cité ci-dessus, on va dire que je veux convertir mon utilisateur guillaume en utilisateur disponible dans Samba.

Pour cela, c’est très simple, il suffit de taper la commande suivante:

smbpasswd -a guillaume

Et taper deux fois le même mot de passe.

l’utilisateur guillaume est maintenant disponible dans Samba.

Attention, après cette commande avec la configuration de Samba que nous avons fait, le mot de passe « Posix » de notre utilisateur a été changé pour être le même que le mot de passe Samba que l’on vient de taper !

 

Les groupes

Pour qu’un groupe Posix qui est dans le LDAP qui est utilisable et visible au niveau système le soit aussi dans Samba, il faut ajouter un objectClass de type sambaGroupMapping à son entrée LDAP.

Pour le groupe utilisateurs que nous avons créé dans le document cité ci-dessus, son fichier LDIF sera donc de la forme suivante:

dn: cn=utilisateurs,ou=groupes,o=free-4ever,dc=net
objectClass: posixGroup
objectClass: sambaGroupMapping
objectClass: top
cn: utilisateurs
gidNumber: 10000
sambaGroupType : 2
sambaSID: S-1-5-21-2251294169-359085906-3159581755-513
memberUid: guillaume

On retrouve bien le sambaGroupMapping en plus et les paramètres qui vont avec:

  • sambaGroupType: le type de groupe Windows. 2 est pour un groupe de domaine et 5 pour un groupe builtin.
  • sambaSID: le SID s’obtient avec la commande suivante:
net getlocalsid free-4ever.ent

On y ajoute -513 qui correspond au niveau d’un domaine Windows au groupe des utilisateurs standard.

Pour modifier notre groupe utilisateurs, on utilise la commande ldapmodify. Si vous avez un doute sur son utilisation, vous pouvez vous reporter au document suivant: Utilisation des outils client.

Pour créer des groupes avec des noms arbitraires, le principe sera le même. Il faudra changer le GID pour le côté Posix et changer le SID pour le côté Windows. Enfin quand je dis changer le SID, c’est juste le dernier morceau: -513 qu’il faudra remplacer.

La méthode pour calculer la dernière partie du sambaSid semble être la suivante: (gidNumber x 2) + 1001. C’est ce que j’ai vu assez souvent sur le net.

Sinon, on ne spécifie pas le sambaSid, on se contente du sambaGroupType puis on tape la commande suivante:

net groupmap add ntgroup=<nom_du_groupe_windows> unixgroup=<nom_du_groupe_linux>

Et cette commande va paramétrer le sambaSid correctement.

Un groupe spécial: administrateurs

Si vous avez bien lu le document sur la configuration du PDC, vous vous souvenez qu’on a définit que le groupe administrateurs aura les droits d’administration de notre domaine !

Nous allons donc créer ce groupe maintenant. Son entrée LDAP est de la même forme que celle du groupe utilisateurs mais le SID du groupe se termine par: -512 qui correspond au groupe administrateurs dans un domaine Windows.

Voici donc son fichier LDIF:

dn: cn=administrateurs,ou=groupes,o=free-4ever,dc=net
objectClass: posixGroup
objectClass: sambaGroupMapping
objectClass: top
cn: administrateurs
gidNumber: 10100
sambaGroupType : 2
sambaSID: S-1-5-21-2251294169-359085906-3159581755-512
memberUid: administrateur

Et la, on voit bien que je mets l’utilisateur administrateur dans ce groupe. C’est complètement arbitraire… on aurait pu mettre l’utilisateur guillaume mais je préfère que l’administrateur du domaine soit un utilisateur séparé.

 

Un utilisateur spécial: administrateur

Comme je le disais, c’est complètement arbitraire, mais je préfère faire ça !

Cet utilisateur se crée comme n’importe lequel autre, d’ailleurs, il n’est même pas spécial en fait… hormis le fait qu’il est dans le groupe administrateurs qui lui à les droits d’administration.

Il faudra d’abord créé son entrée dans le LDAP avec un fichier LDIF, puis le rendre accessible à Samba avec la commande smbpasswd comme pour l’utilisateur guillaume un peu plus haut dans ce document.

 

Mot de la fin

Voila, vous avez les bases pour gérer vos utilisateurs et vos groupes. Pour l’instant avec des fichiers LDIF et la commande smbpasswd mais il y a des solutions plus souples, pour gérer les entrées LDAP, comme phpldapadmin ou encore des scripts que je vais mettre en ligne bientôt.

Vous pouvez maintenant aller lire les documents suivants sur la Configuration des client Windows et la Configuration des client Linux.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s