• Aucun résultat trouvé

APPARTENANCE À PLUSIEURS GROUPES

Dans le document Linux (Page 59-64)

Protection des fichiers

4.5 APPARTENANCE À PLUSIEURS GROUPES

Lors de l’entrée en session, un utilisateur appartient à son groupe de rattachement principal : celui défini dans le fichier/etc/passwd(voir le paragraphe 2.1.3). Cet utilisateur peut toutefois être membre d’autres groupes, tel que cela est défini dans le

4.5 Appartenance à plusieurs groupes 43

©DunodLaphotocopienonautoriséeestundélit.

fichier /etc/group(voir le paragraphe 2.1.3). BSD et System V diffèrent sur les points suivants :

Dans les versions d’Unix de souche BSD :

Les permissions de groupe d’un fichier (ou d’un répertoire) sont applicables à tout utilisateur membre du groupe propriétaire du fichier. Tout fichier nouvelle-ment créé a pour groupe propriétaire le groupe auquel appartient le répertoire dans lequel il est créé. (Un utilisateur peut donc créer un fichier appartenant à un groupe dont il n’est pas membre.)

Dans les versions d’Unix de souche System V :

Les permissions de groupe d’un fichier (ou d’un répertoire) ne sont applicables à un utilisateur que si son groupe effectif est le groupe propriétaire du fichier. Un utilisateur peut changer de groupe effectif à tout moment en effectuant la commande newgrp nouveau groupe, à condition d’être membre de nouveau groupe. Tout fichier nouvellement créé a pour groupe propriétaire le groupe effectif de son créateur.

Linux, comme d’autres versions d’Unix, réalise une synthèse entre ces deux comportements :

Les permissions de groupe d’un fichier (ou d’un répertoire) sont applicables à tout utilisateur membre du groupe propriétaire du fichier, comme en BSD.

Tout fichier nouvellement créé a pour groupe propriétaire le groupe effectif de l’utlisateur qui le crée si le répertoire qui le contient n’est pas SGID. C’est le comportement System V.

Tout fichier nouvellement créé a pour groupe propriétaire le groupe auquel appartient le répertoire dans lequel il est créé si ce répertoire est SGID. C’est le comportement BSD.

Le choix entre le comportement System V et BSD peut donc être fixé répertoire par répertoire par positionnement du bit SGID sur le répertoire. Ceci est réalisé par les commandes :

chmod g+s repertoire § met le bit SGID chmod g s repertoire § supprime le bit SGID

Si un répertoire est SGID, tout sous-répertoire créé ultérieurement héritera du bit SGID, et donc du comportement BSD. Ce comportement est très adapté au travail en groupe :

Exemple

L’utilisateur xstra fait partie du groupe staff et également du groupe reseau. Son groupe principal est staff. Voyons ce qui se passe dans un répertoire non SGID : xstra> umask 002

xstra> ls ld projet1

drwx rwx r x 2 xstra staff 4096 jan 22 10:0 projet1

44 4 • Protection des fichiers

§ le répertoire projet1 n’est pas SGID xstra> cd projet1

xstra> ls –l bonjour

rwx r 1 pierre reseau 25 fev 10 10:25 bonjour xstra> cat bonjour § xstra fait partie du groupe reseau Hello § il peut donc lire le contenu

Comment vas tu? § du fichier bonjour xstra> touch prog2.c

xstra> ls –l prog2.c

rwx rwx r 1 xstra staff 0 fev 10 15:02 prog2.c

§ Le fichier prog2.c appartient au groupe staff

§ et non pas au groupe réseau.

Les autres membres du groupe réseau n’ont pas la permission de modifier le fichier prog2.c : nous ne sommes pas dans une logique de travail en groupe pour le groupe réseau. Voyons maintenant ce qui se passe dans un répertoire SGID : xstra> umask u rwx,g rwx,o rx

xstra> ls ld projet2

drwx rws r x 3 xstra reseau 4096 jan 22 10:0 projet2

§ le répertoire projet2 est SGID xstra> cd projet2

xstra> touch prog2.c xstra> ls –l prog2.c

rwx rwx r 1 xstra reseau 0 fev 10 15:02 prog2.c

§ Le fichier prog2.c appartient au groupe reseau.

Dans ce dernier cas, tous les membres du groupe réseau pourront modifier tout fichier créé dans ce répertoire. Le travail en groupe est très simplifié. Une discus-sion beaucoup plus détaillée et très intéressante sur cette logique est disponible (en anglais) dans l’aide en ligne au format HTML, par exemple pour la distibution Red Hat dans :

Red Hat Linux Reference Guide System Related Reference

System Administration

Users, Groups and User-Private Groups

4.6 EXERCICES

Exercice 4.6.1

En utilisant les commandesmkdir, echo etcat, créez dans un nouveau réper-toire de nom "reptest" le fichier "bienvenue" contenant la ligne de commandes :

echo Bienvenue dans le monde Linux Exécutez ce fichier.

4.6 Exercices 45

©DunodLaphotocopienonautoriséeestundélit.

Exercice 4.6.2

En utilisant les commandesmkdir,echo,cp,chmod,cat, créez un fichier que vous pouvez lire, modifier et supprimer.

Exercice 4.6.3

En utilisant les commandesmkdir,echo,cp,chmod,cat, créez un fichier que vous pouvez lire et supprimer mais que vous ne pouvez modifier.

Exercice 4.6.4

En utilisant les commandesmkdir,echo,cp,chmod,cat, créez un fichier que vous pouvez lire mais que vous ne pouvez ni modifier, ni supprimer.

Exercice 4.6.5

Dans quel cas les permissions d’un fichier à sa création sont-elles différentes des permissions fixées parumask?

Exercice 4.6.6

Si vous pouvez travailler avec un collègue appartenant au même groupe que vous, modifiez les permissions du fichier créé à l’exercice "Bienvenue" ci-dessus de telle façon que votre collègue puisse le lire et l’exécuter, mais ne puisse pas le modifier ni le supprimer.

Pouvez-vous modifier les permissions de ce fichier de telle sorte que votre collègue puisse le lire, le modifier et l’exécuter alors que vous-même ne pouvez pas le modi-fier ?

Exercice 4.6.7

Comment est attribuée la permission d’effacer un fichier ? Créez un fichier que votre collègue peut modifier mais pas supprimer et un autre qu’il peut supprimer mais pas modifier. Est-il logique de pouvoir attribuer de tels droits ? Quelles sont les consé-quences pratiques de cette expérience ?

©DunodLaphotocopienonautoriséeestundélit.

Chapitre 5

Dans le document Linux (Page 59-64)