La gestion des utilisateurs et des groupes est
généralement fastidieuse ; 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.
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 de l'utilisateur.
Reportez-vous à
la section intitulée Groupes propres à l'utilisateur pour plus de
détails sur l'utilisation des groupes.
Tableau 2-1. Utilisateurs standard
Utilisateur
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)
Dans la 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)
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 appartient.
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 est défini dans
/etc/profile.
Bit setgid sur des répertoires
Si vous définissez le bit setgid sur un
répertoire (avec chmod g+srépertoire),
le groupe des fichiers créés dans ce
répertoire sera celui du répertoire.
La plupart des sites informatiques aiment créer un
groupe pour chaque grand projet et affecter 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
affecté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 pourront donc toujours
être édités 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.
Bien que l'UPG ne soit pas une nouveauté dans Red Hat Linux
6.2, 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 entrez 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 entrez :
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 cela, 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.