Red Hat Linux utilise un système de groupe propre à l'utilisateur (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, des permissions par défaut peuvent être déterminées en toute sécurité sur un nouveau fichier ou répertoire qui permettent à l'utilisateur, ainsi qu'au groupe de cet utilisateur de modifier le fichier ou répertoire.
Le paramètre qui détermine les différentes permissions à accorder à de nouveaux fichiers ou répertoires s'appelle un umask et est configuré dans le fichier /etc/bashrc. Sur des systèmes UNIX, l' 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, tous les autres utilisateurs, y compris les membres du groupe du créateur, ne sont pas autorisés à apporter de modifications. 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.
De nombreuses sociétés du secteur informatique aiment créer un groupe pour chaque projet majeur et ensuite assignent des personnes aux groupes, si ces dernières doivent avoir accès aux fichiers du projet. Ce système traditionnel rend la gestion de fichiers difficile, car, lorsqu'une personne crée un fichier, ce dernier est associé au groupe primaire auquel la personne appartient. Lorsqu'une même personne travaille sur plusieurs projets, il devient difficile d'associer les bons fichiers au bon groupe. Toutefois, grâce système UPG, les groupes sont automatiquement assignés aux 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 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 en aucun cas tout le monde. Ainsi, il faut d'abord créer un groupe emacs, comme le montre 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 <nom-d'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, 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éés 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.