Red Hat Enterprise Linux utilise un système de groupe privé d'utilisateurs (ou UPG de l'anglais User Private Group) qui facilite considérablement la gestion de groupes UNIX.
Un UPG est créé chaque fois qu'un nouvel utilisateur est ajouté au système. Les UPG portent le même nom que l'utilisateur pour lequel ils ont été créés et seul cet utilisateur est un membre de l'UPG.
Grâce à l'utilisation d'UPG, il est possible de déterminer en toute sécurité des permissions par défaut pour un nouveau fichier ou répertoire afin que l'utilisateur et le groupe de cet utilisateur puissent modifier le fichier ou répertoire.
Le paramètre qui détermine les permissions spécifiques à accorder à de nouveaux fichiers ou répertoires s'appelle umask ; ce dernier est configuré dans le fichier /etc/bashrc. Sur des systèmes UNIX, umask a traditionnellement une valeur de 022, permettant uniquement l'utilisateur qui a créé le fichier ou répertoire de le modifier. Sous ce système, aucun autre utilisateur, même les membres appartenant au groupe du créateur, n'est autorisé à apporter quelque modification que ce soit. Cependant, étant donné que chaque utilisateur a son propre groupe privé dans le système UPG, cette "protection de groupe" n'est pas nécessaire.
Dans de nombreuses sociétés du secteur informatique il est courant de créer un groupe pour chaque grand projet et d'y assigner ensuites des personnes, si ces dernières doivent avoir accès aux fichiers du projet. Avec ce système traditionnel, un fichier est créé, il est associé au groupe primaire auquel son créateur appartient. Ainsi, lorsqu'une même personne travaille sur plusieurs projets, il devient difficile d'associer les bons fichiers au bon groupe. Toutefois, en utilisant le système UPG, les groupes sont automatiquement assignés aux fichiers créés dans un répertoire avec un bit setgid déterminé. Ce dernier facilite considérablement la gestion des projets de groupe qui partagent un répertoire commun étant donné que tous les fichiers créés par un utilisateur au sein du répertoire appartiennent au groupe propriétaire du répertoire.
Supposons par exemple qu'un groupe de personnes travaille sur des fichiers figurant dans le répertoire /usr/lib/emacs/site-lisp/. Certaines personnes dignes de confiance peuvent certes être autorisées à modifier le répertoire, mais tout le monde ne peut pas jouir de ce privilège. Il est donc nécessaire de créer d'abord un groupe emacs, comme le fait la commande suivante :
/usr/sbin/groupadd emacs |
Afin d'associer le contenu du répertoire au groupe emacs, tapez :
chown -R root.emacs /usr/lib/emacs/site-lisp |
Il est maintenant possible d'ajouter les utilisateurs appropriés au groupe à l'aide de la commande gpasswd :
/usr/bin/gpasswd -a <username> emacs |
Afin d'autoriser les utilisateurs à créer des fichiers dans le répertoire, utilisez la commande suivante :
chmod 775 /usr/lib/emacs/site-lisp |
Lorsqu'un utilisateur crée un nouveau fichier, il se voit assigner le groupe privé par défaut du groupe de l'utilisateur. Ensuite, donnez une valeur au bit setgid, qui donne à tout fichier créé dans le répertoire la même permission de groupe que le répertoire lui-même (emacs). Utilisez la commande suivante :
chmod 2775 /usr/lib/emacs/site-lisp |
À ce stade, comme l'umask par défaut de chaque utilisateur est 002, tous les membres du groupe emacs peuvent créer et modifier des fichiers dans le répertoire /usr/lib/emacs/site-lisp/, sans que l'administrateur n'aie à changer les permissions de fichiers chaque fois que des utilisateurs enregistrent de nouveaux fichiers.
Précédent | Sommaire | Suivant |
Groupes ordinaires | Niveau supérieur | Mots de passe masqués |