Samba

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 15

Tutoriel : Gestion de droits avec un serveur Samba sous Debian 6.

Sommaire :

0-Situation et objectifs.

1-Mise en place et prérequis.

2-Création des différents groupes et utilisateurs.


A-Les groupes.
B-Les utilisateurs.

3-Configuration du serveur Samba.

4-Configuration des dossiers et gestion des droits

5-Validations.

0-Situation et objectifs :

-Vous êtes chargé de restructurer les dossiers partagés d'un établissement


scolaire sur leur serveur Debian. L'établissement compte trois classes, des
formateurs, et une équipe administrative.
L'équipe administrative possède un dossier qui n'est accessible que par celle-ci.
Il existe un dossier formateur accessible par eux en écriture et par l'équipe
administrative en lecture uniquement.
Il existe également un dossier pour chaque classe accessible par les élèves de
chaque classe ainsi que les formateurs en faisant partie.
Un formateur peut être dans plusieurs classe, ces dossiers sont accessibles en
lecture et en écriture par les formateurs et les élèves de chacune de ces classes.
Enfin, on ne peut pas supprimer un fichier dont on n'est pas propriétaire.

1-Mise en place et prérequis :

Dans cette partie, nous allons mettre en place tout le nécessaire pour
commencer la structuration de ce projet. Tout d'abord, il faut installer Samba
sur le serveur. Pour ce faire, il suffit juste de n'importe quel dossier du serveur
d'entrer la commande : apt-get install samba.
L'installation se lance, et quand tous les paquets ont été récupérés Samba est
utilisable.

(Si l'installation ne fonctionne pas premièrement, il faut rafraîchir la liste des


paquets grâce à la commande apt-get update puis de relancer l'installation)

Ensuite, il faut créer l'environnement dans lequel nous pourrons gérer les
différents droits. Ici, nous allons créer un sous-dossier « Adrar » dans le répertoire
« home ». Pour se faire, il suffit de se placer dans « /home » avec la commande cd
home puis de créer le répertoire principal « Adrar » avec la commande mkdir
/home/Adrar. Le dossier est créé. Dans celui-ci nous allons, créer 5 sous-dossiers
« Administration », « Formateurs », « ClasseA », « ClasseB » et « ClasseC » de la
même manière. (Il est possible de créer plusieurs dossiers en une seule ligne de
commande :

on utilise ensuite la commande ls pour voir le contenu du dossier courant.).

Nous avons donc mise en place l'arborescence dans laquelle nous allons pouvoir
travailler.

2-Création des groupes et utilisateurs.

Suite à la création des dossiers, nous commençons la création des différents


groupes (Admin ,Formateurs, ClasseA,B et C) et utilisateurs (1 administrateur, 2
formateurs, et 2 élèves par classe).

Nous procéderons en premier lieu par les groupes, auxquels nous assignerons
ensuite les différents utilisateurs.

A-Les groupes.

Rien de plus simple que de créer un groupe, utilisez la commande groupadd


suivie du nom du groupe :

Répétez l'opération pour chaque groupe.

En tapant cat /etc/group on peut voir la liste de tous les groupes et ceux que
nous venons de créer sont les derniers (il manque Formateurs et Admin):

B-Les utilisateurs.
Maintenant créons les utilisateurs et affectons-les à leurs groupes. Tapez
useradd -m -g nom_du_groupe nom_utilisateur. (Le paramètre -g permet d'ajouter
l'utilisateur au groupe spécifié.)
Ce qui nous donne pour les élèves par exemple :

Répétez l'opération pour tous les utilisateurs. (Formateur1, Formateur2 et Admin1).


Nous avons donné des groupes primaires aux utilisateurs, nous pouvons ensuite donner
des groupes secondaires avec usermod -a -G nom_groupe nom_utilisateur. Pour
assigner le Formateur1 aux classe A et B et le Formateur2 à la classe C.

3-Configuration du serveur Samba :

Cette partie va permettre de configurer le serveur Samba pour lier les utilisateurs a
Samba et rendre le dossier Adrar accessible aux utilisateurs concernés ainsi que de lui
attribuer plusieurs propriétés.

Tout d'abord nous devons lier les utilisateurs à Samba en leur assignant un mot de
passe. Utilisez la commande : smbpasswd -a nom_user (l'option -a est utilisée car on
indique le nom d'utilisateur ensuite). Faites cette opération pour chaque utilisateur.
La commande vous demande d'entrer un mot de passe et de le confirmer :

Ensuite, pour effectuer la configuration du serveur, nous devons modifier le fichier


smb.conf qui se trouve dans /etc/samba/smb.conf. Cependant, pour éviter de faire des
erreurs importantes, nous allons procéder à la copie de ce fichier. Lorsque nous
sommes dans /etc/samba entrez la commande suivante : cp smb.conf smb.conf.save,
cp est la commande qui permet de copier le fichier dont le nom est inscrit ensuite (ici
smb.conf) le deuxième nom correspond à celui de la copie effectuée :

Nous allons ensuite commencer à éditer ce fichier : nano smb.conf.


[Adrar] => Correspond au nom qu'aura le partage.
Path => Indique le chemin du dossier à partager.
comment => C'est la description de ce partage.
valid users => Les utilisateurs autorisés à accéder au dossier. (@nom_groupe pour
ajouter un groupe directement)
browsable => On indique si le partage est visible ou non
read only => On indique se le partage est en lecture seule.

Après avoir enregistrer le document (ctrl+o), il faut redémarrer le service Samba grâce a
la commande /etc/init.d/samba restart.

4-Configuration des dossiers et gestion des droits

Dans la partie qui va suivre, nous allons mettre en place les différents droits, les
groupes propriétaires de chaque dossier et ajouter une exception pour le dossier
Formateur grâce aux ACL.

Dans /home/Adrar si on entre ls -l on peut voir la liste des différents dossiers


ainsi que leurs droits comme ceci :

La suite de lettre drwxr-xr-t correspond aux différents droits, elle se compte 3 lettres
par 3. La première triade correspond à l'utilisateur root, la deuxième au groupe
propriétaire et la troisième à tous les autres utilisateurs. Or on peut voir qu'aucun
groupe propriétaire n'est défini. (le deuxième root indique qu'il n'y en pas). Nous allons
donc nous occuper de cela, avec la commande chgrp nom_groupe nom_dossier
permet de définir le groupe en question comme groupe propriétaire du dossier
indiqué.
Nous allons donc entrer chgrp Formateur Formateurs,
chgrp Admin Administration,
chgrp ClasseA ClasseA,
chgrpClasseB ClasseB
chgrp ClasseB ClasseB

Ce qui nous donne :


Le –T à la fin de la suite des droits correspond au droit créateur propriétaire
-Configuration générale (Créateur propriétaire)
chmod +t -R Adrar/ (applique le créateur propriétaire (+t) a tout les autres sous-dossiers
(-R))
Lorsque ce droit est positionné sur un répertoire, il interdit la suppression d'un fichier
qu'il contient à tout utilisateur autre que le propriétaire du fichier.
Or, il faudra appliquer cette commande après la modification des droits qui fait sauter
le droit du créateur propriétaire.
Maintenant nous allons nous concentrer sur la gestion des différents droits à appliquer
à chaque dossier.
Pour ce faire, nous utilisons la commande chmod 775 par exemple, chaque chiffre
représente un droit :

Nous allons donc vous lister et expliquer les droits à appliquer aux dossiers :

Pour le dossier parent Adrar, nous voulons que le propriétaire (root) ait tous les droits
(donc 7), pareil pour le groupe (root), mais nous voulons seulement les droits de lecture
et d'exécution pour les autres (donc 5) pour éviter qu'un élève ne puisse rajouter un
dossier à la racine de notre partage.
Donc:

Pour ce qui est du dossier Administration on veut laisser tous les droits au propriétaire
et au goupe, mais n'en laisser aucun au public : chmod 770 Administration/

Pour chaque classe, nous voulons exactement les mêmes droits que pour
Administration :
chmod 770 ClasseX/
Et pour les Formateurs nous voulons des droits un peu différents puisque l'équipe
d'aministration doit pouvoir accéder au dossier en lecture. Nous allons donc devoir
gérer une exception avec les ACL (acces control list).
Tout d'abord on défini les droits comme pour les autres dossiers : chmod 770
Formateurs/
Ensuite il faut installer ce service donc : apt-get install acl nous le permet. (exactement
comme pour Samba au commencement du tutoriel).
Ensuite vous devez entrer la commande suivante : setfacl -dm g:Admin:r Formateurs/
(attention aux espaces qui sont importants.).
L'option -d permet d'appliquer cette exception aux futurs dossiers et fichiers créer dans
le répertoire choisi.
L'option m est obligatoire et précède le -d elle permet d'ajouter une instruction.
L'option g:Admin définit le groupe d'utilisateur qui aura l'exception et :r correspond a
read et autorise le droit de lecture au dossier Formateurs/ que l'on définit ensuite.

Pour vérifier que l'ACL est bien en place, on voit dans les droits que le -T devient -T+.

Les droits finaux ressemblent donc à ça :

Nous en avons donc terminé avec les droits, pour valider les modifications, nous devons
redémarrer le service Samba grâce a la commande : /etc/init.d/samba restart

Il ne reste plus qu'à effectuer les vérifications.

5-Validations.

Pour effectuer les vérifications des droits, nous allons utiliser un client windows 7. Il faut
donc monter le lecteur réseau qui permettra l'accès à notre serveur Samba. Nous
utiliserons un script batch qui permettra de le faire à chaque fois que l'on ouvre une
session. Dans la réalité il faudrait donc copier ce script sur toutes les machines de
l'établissement pour que ce soit effectif.

Sur le bureau, clic droit => Nouveau => Document texte, nommez le script_lecteur.bat.
Il faut ensuite l'éditer comme ceci :
La première ligne consiste à supprimer toutes les autres connexions des lecteurs.
NET USE * sélectionne tous les lecteurs.
/Delete /y permet de supprimer la connexion et de forcer la réponse à la confirmation.

La seconde ligne permet la connexion à notre serveur.


/persitent:no permet que les informations de connexion ne soient pas enregistrées, on
doit se reconnecter à chaque connexion.

Pour que le script se déclenche au démarrage nous allons le place dans le dossier
Démarrage :
Redémarrez ensuite votre pc pour vérifier que le script est actif. Lors du redémarrage,
on peut voir apparaître cette fenêtre qui nous propose de se connecter. Entrez les
identifiants du compte avec lequel vous voulez accéder au serveur. Le lecteur est donc
monté et on y accède avec les droits du compte associé.

Tout est en place pour commencer nos tests.


Commençons par se connecter en tant que l'administrateur.

Nous pouvons bien accéder et créer un fichier dans le dossier Administration :

Nous ne pouvons accéder à aucun des dossier Classe :

ClasseA :

ClasseB :
ClasseC :

<Partie ou on peut accéder au ossier formateurs>

Ensuite, connectons nous en tant que le Formateur1 qui est formateur des classes A et
B:
Nous ne pouvons pas accéder au dossier Administration, comme voulu :

Nous ne pouvons pas accéder au dossier ClasseC dont nous ne sommes pas formateur :

Or nous avons accès aux dossiers ClasseA et B :

Nous avons également le droit d'écriture : Le fichier Formateur1.txt


Or, nous ne pouvons pas supprimer le fichier créé par l'élève A1 par exemple :

Nous confirmons la suppression...


Ce n'est pas possible ! Les droits des formateurs sont donc bons pour ce qui est des
classes. Essayons dans le dossier Formateurs.

En tant que Formateur1 nous avons accès au dossier Formateurs, essayons de modifier
puis de supprimer le fichier d'un de nos collègues :

Essayons de quitter en enregistrant :


On confirme le nom du fichier et on tombe sur cette fenêtre :

Il est donc impossible de modifier un fichier dont on n'est pas le propriétaire.

Essayons maintenant la suppression :


On valide la suppression :

Ce n'est pas possible ! Les droits concernant les formateurs sont donc bons ! Passons
aux élèves !

Ils ne doivent avoir accès qu'au dossier de leur classe et ne peuvent pas modifier ni
supprimer le fichier d'une autre personne. Ils peuvent seulement les ouvrir. On se
connecte en tant qu'élève A1 :

Vous aimerez peut-être aussi