| Red Hat Linux 7.3: Guide de référence officiel Red Hat Linux | ||
|---|---|---|
| Précédent | Chapitre 6. Utilisateurs et groupes | Suivant |
Red Hat Linux utilise un système de groupe propre à l'utilisateur (UPG), qui facilite considérablement l'utilisation de groupes UNIX. Le système UPG n'ajoute ni ne modifie rien à la manière standard dont UNIX manipule les groupes. Il propose simplement une nouvelle convention pour leur manipulation. Chaque fois que vous créez un nouvel utilisateur, par défaut, il correspond à un groupe unique. Le système fonctionne comme suit :
Chaque utilisateur a son propre groupe principal qui est le seul auquel il appartienne.
L'umask UNIX traditionnel est 022, ce qui empêche d'autres utilisateurs et d'autres membres du groupe principal d'un utilisateur de modifier les fichiers d'un utilisateur. Du fait que chaque utilisateur a son propre groupe privé dans le système UPG, cette "protection de groupe" n'est pas nécessaire. Un umask égal à 002 empêche les utilisateurs de modifier les fichiers privés d'autres utilisateurs. L'umask est défini dans /etc/profile.
Si vous définissez le bit setgid sur un répertoire (avec chmod g+s répertoire), le groupe des fichiers créés dans ce répertoire sera celui du répertoire.
La plupart des sociétés du secteur informatique aiment créer un groupe pour chaque projet majeur et assigner les personnes aux groupes dont elles doivent faire partie. La gestion de fichiers a cependant toujours été difficile du fait que, lorsque quelqu'un crée un fichier, celui-ci est la propriété du groupe principal auquel la personne appartient. Lorsqu'une même personne travaille sur plusieurs projets, il devient difficile d'associer les bons fichiers au bon groupe de propriété. Dans le système UPG, les groupes sont automatiquement assignés à des fichiers créés dans un répertoire avec le bit setgid défini, ce qui facilite considérablement la gestion des projets de groupe partageant un répertoire commun.
Supposons que vous ayez un grand projet baptisé devel, dans le cadre duquel de nombreuses personnes éditent des fichiers devel figurant dans un répertoire devel. Créez un groupe appelé devel, attribuez la propriété chgrp du répertoire devel au groupe devel, puis ajoutez tous les utilisateurs devel au groupe devel.
Vous pouvez ajouter un utilisateur à un groupe à l'aide de redhat-config-users (voir Guide de personnalisation officiel Red Hat Linux). Si vous préférez utiliser la ligne de commande, exécutez la commande /usr/sbin/groupadd nom-du-groupe pour créer un groupe. La commande /usr/bin/gpasswd -a loginname nom-du-groupe ajoutera un utilisateur loginname à un groupe. (Pour obtenir plus d'informations sur leurs options, voir les pages groupadd et gpasswd du manuel.) Le fichier /etc/group contient les informations concernant les groupes pour votre système.
Si vous avez créé le groupe devel, ajouté des utilisateurs au groupe devel, changé le groupe du répertoire devel en devel et défini le bit setgid pour le répertoire devel, tous les utilisateurs devel pourront éditer les fichiers devel et créer de nouveaux fichiers dans le répertoire devel. Les fichiers qu'ils créent garderont toujours leur statut de groupe devel, de façon à ce que les autres utilisateurs devel puissent toujours les éditer.
Si vous avez plusieurs projets tels que devel et des utilisateurs travaillant sur plusieurs projets, ces derniers ne devront jamais changer d'umask ou de groupe pour passer d'un projet à l'autre. S'il est bien configuré, le bit setgid sur le répertoire principal de chaque projet "sélectionne" le groupe approprié pour tous les fichiers de ce répertoire.
Du fait que le répertoire personnel de chaque utilisateur appartient à l'utilisateur et à son groupe privé, la définition du bit setgid sur le répertoire personnel apporte une sécurité. Toutefois, par défaut, les fichiers sont créés avec le groupe principal de l'utilisateur, de sorte que le bit setgid serait redondant.
Bien que le groupe propre à l'utilisateur ne soit pas une nouveauté dans Red Hat Linux, bon nombre de personnes se posent des questions à son sujet, notamment quant à son utilité. Etudiez le scénario suivant.
Vous souhaitez qu'un groupe de personnes travaillent sur une série de fichiers se trouvant dans le répertoire /usr/lib/emacs/site-lisp. Vous faites confiance à quelques personnes capables, selon vous, de modifier le répertoire, mais pas à toutes.
Tout d'abord, créez un groupe emacs :
/usr/sbin/groupadd emacs |
Pour associer le contenu du répertoire au groupe emacs, exécutez la commande suivante :
chown -R root.emacs /usr/lib/emacs/site-lisp |
Il est maintenant possible d'ajouter les utilisateurs appropriés à ce groupe à l'aide de gpasswd :
/usr/bin/gpasswd -a <nom_utilisateur> emacs |
Autorisez les utilisateurs à créer réellement des fichiers dans le répertoire à l'aide de la commande suivante :
chmod 775 /usr/lib/emacs/site-lisp |
Lorsqu'un utilisateur crée un nouveau fichier, ce dernier est attribué au groupe par défaut de l'utilisateur. Pour empêcher cela, exécutez la commande suivante, qui entraîne la création de tout ce qui figure dans le répertoire avec le groupe emacs :
chmod 2775 /usr/lib/emacs/site-lisp |
Si le nouveau fichier doit être du mode 664 pour qu'un autre utilisateur du groupe emacs puis l'éditer, créez l'umask 002 par défaut.
A ce stade, en créant l'umask 002 par défaut, vous pouvez aisément constituer des groupes dont les utilisateurs puissent bénéficier sans effort supplémentaire à chaque fois que des utilisateurs écrivent des fichiers dans le répertoire commun du groupe. Créez simplement le groupe, ajoutez les utilisateurs et appliquez les commandes chown et chmod ci-dessus aux répertoires du groupe.
| Précédent | Sommaire | Suivant |
| Groupes standard | Niveau supérieur | Utilitaires masqués |