Red Hat Linux 7.1: Guide de référence officiel Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 2. 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 la manipulation des groupes. 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 directory), le groupe des fichiers créés dans ce répertoire sera celui du répertoire.
La plupart des organisations de TI 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, projet par projet, ce qui facilite considérablement la gestion des projets de groupe.
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. 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 Linuxconf (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 groupname pour créer un groupe. La commande /usr/bin/gpasswd -a loginname groupname 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. Le bit setgid sur le répertoire principal de chaque projet "sélectionne" le groupe approprié.
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 l'UPG ne soit pas une nouveauté dans Red Hat Linux 7.1, bon nombre de personnes se posent des questions à son sujet, notamment quant à son utilité. Voici un exposé raisonné relatif à ce système.
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 faire quelques manipulations, mais pas à toutes.
Tout d'abord, vous créez un groupe emacs en tapant :
/usr/sbin/groupadd emacs |
Ensuite vous saisissez :
chown -R root.emacs /usr/lib/emacs/site-lisp |
Pour associer les contenus du répertoire au groupe emacs et ajouter les utilisateurs appropriés à ce groupe :
/usr/bin/gpasswd -a <username> emacs |
Pour permettre aux utilisateurs de créer réellement des fichiers dans le répertoire, vous tapez :
chmod 775 /usr/lib/emacs/site-lisp |
Mais, lorsqu'un utilisateur crée un nouveau fichier, ce dernier est attribué au groupe par défaut de l'utilisateur (généralement users). Pour empêcher ceci, entrez :
chmod 2775 /usr/lib/emacs/site-lisp |
Mais le nouveau fichier doit être du mode 664 pour qu'un autre utilisateur du groupe emacs puis l'éditer. A cette fin, vous créez l'umask 002 par défaut.
Cela fonctionne assez bien, si ce n'est que le groupe par défaut est users, tous les membres de "users" (généralement tout le monde) peuvent écrire dans chaque fichier du répertoire personnel.
Pour éviter cela, vous pouvez attribuer à chaque utilisateur un groupe privé par défaut.
A ce stade, en créant l'umask 002 par défaut et en attribuant à chacun un groupe privé par défaut, vous pouvez aisément constituer des groupes dont les utilisateurs puissent bénéficier dans devoir faire appel à des solutions magiques. 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 | Processus de démarrage, Init et arrêt |