Utilisateurs, groupes et groupes propres à l'utilisateur

La gestion des utilisateurs et des groupes est généralement laborieuse ; toutefois, Red Hat Linux comprend quelques outils et conventions qui facilitent la gestion des utilisateurs et des groupes.

Si vous pouvez utiliser useradd pour créer un nouvel utilisateur à l'invite du shell, la manière la plus simple de gérer des utilisateurs et des groupes consiste à utiliser Linuxconf (reportez-vous au Chapitre 3).

Ensuite, nous présenterons la structure de base sous-jacente à la gestion des utilisateurs et des groupes.

Utilisateurs standard

Dans Tableau 2-1, vous trouverez les utilisateurs standard configurés par le processus d'installation (il s'agit essentiellement du fichier /etc/passwd). L'id du groupe (GID) figurant dans ce tableau correspond au groupe principal pour l'utilisateur. Reportez-vous à la la section intitulée Groupes propres à l'utilisateur pour plus de détails sur l'utilisation des groupes.

Tableau 2-1. Utilisateurs standard

User UID GID Répertoire personnel Shell
root 0 0 /root /bin/bash
bin 1 1 /bin  
démon 2 2 /sbin  
adm 3 4 /var/adm  
lp 4 7 /var/spool/lpd  
sync 5 0 /sbin /bin/sync
arrêt 6 0 /sbin /sbin/shutdown
halt 7 0 /sbin /sbin/halt
courrier 8 12 /var/spool/mail  
news 9 13 /var/spool/news  
uucp (Unix-to-Unix file CoPy, copie de fichiers Unix-Unix) 10 14 /var/spool/uucp  
opérateur 11 0 /root  
jeux 12 100 /usr/games  
gopher 13 30 /usr/lib/gopher-data  
ftp 14 50 /var/ftp  
personne 99 99 /  

Groupes standard

Dans Tableau 2-2, vous trouverez les groupes standard tels que définis par le processus d'installation (il s'agit essentiellement du fichier /etc/group).

Tableau 2-2. Groupes standard

Groupe GID Membres
root 0 root
bin 1 root, bin, démon
démon 2 root, bin, démon
sys 3 root, bin, adm
adm 4 root, adm, démon
tty 5  
disque 6 root
lp 7 démon, lp
mem 8  
kmem 9  
wheel 10 root
courrier 12 courrier
news 13 news
uucp (Unix-to-Unix file CoPy, copie de fichiers Unix-Unix) 14 uucp (Unix-to-Unix file CoPy, copie de fichiers Unix-Unix)
man 15  
jeux 20  
gopher 30  
dip 40  
ftp 50  
personne 99  
utilisateurs 100  

Groupes propres à l'utilisateur

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 :

Groupe propre à l'utilisateur

Chaque utilisateur a son propre groupe principal qui est le seul auquel il appartienne.

umask = 002

Le 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. Le umask les définit dans /etc/profile.

Bit setgid sur des répertoires

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 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 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. Désormais, tous les utilisateurs sont en mesure d'éditer les fichiers devel et de créer de nouveaux fichiers dans le répertoire devel ; ces fichiers conserveront toujours leur groupe devel. Ils seront donc toujours éditables par d'autres utilisateurs devel.

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.

Exposé raisonné concernant le groupe propre à l'utilisateur

Bien que l'UPG ne soit pas une nouveauté dans Red Hat Linux 7.0, 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.

  • Vous tapez alors :
    chown -R root.emacs /usr/lib/emacs/site-lisp
                    
    et ajoutez les utilisateurs appropriés au groupe.

  • 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
                    
    qui entraîne la création de tout ce qui figure dans le répertoire avec le groupe "emacs".

  • 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, sauf que, si 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.