8.4. Base de données des utilisateurs et des groupes
La liste des utilisateurs est habituellement stockée dans le fichier /etc/passwd
, alors que le fichier /etc/shadow
stocke les mots de passe hachés. Tous deux sont de simples fichiers texte, au format relativement simple, consultables et modifiables avec un éditeur de texte. Chaque utilisateur y est décrit sur une ligne par plusieurs champs séparés par deux-points (« :
»).
8.4.1. Liste des utilisateurs : /etc/passwd
Voici la liste des champs du fichier /etc/passwd
:
identifiant (ou login), par exemple rhertzog
;
mot de passe : il s'agit d'un mot de passe chiffré par la fonction à sens unique (crypt
), qui utilise DES
, MD5
, SHA-256
ou SHA-512
. La valeur spéciale « x
» indique que le mot de passe chiffré est stocké dans /etc/shadow
;
uid
: numéro unique identifiant l'utilisateur ;
gid
: numéro unique du groupe principal de l'utilisateur (Debian crée par défaut un groupe spécifique à chacun) ;
GECOS
: champ de renseignements qui contient habituellement le nom complet de l'utilisateur ;
répertoire de connexion, attribué à l'utilisateur pour qu'il y stocke ses fichiers personnels (la variable d'environnement $HOME
y pointe habituellement) ;
programme à exécuter après la connexion. Il s'agit généralement d'un interpréteur de commandes (shell), donnant libre cours à l'utilisateur. Si l'on précise /bin/false
(programme qui ne fait rien et rend la main immédiatement), l'utilisateur ne pourra pas se connecter.
8.4.2. Le fichier des mots de passe chiffrés et cachés : /etc/shadow
Le fichier /etc/shadow
contient les champs suivants :
8.4.3. Modifier un compte ou mot de passe existant
Quelques commandes permettent de modifier la plupart des informations stockées dans ces bases de données. Chaque utilisateur peut ainsi changer de mot de passe, sans doute le champ le plus variable, grâce à la commande passwd
qui mettra également à jour le fichier /etc/shadow
; chfn
(CHange Full Name), réservée au super-utilisateur root, intervient sur le champ GECOS
. chsh
(CHange SHell) permet de changer de « shell de login », ou interpréteur de commandes de connexion, mais le choix des utilisateurs sera limité à la liste donnée dans /etc/shells
— alors que l'administrateur pourra saisir le nom de programme de son choix.
Enfin, la commande chage
(CHange AGE) donnera à l'administrateur la possibilité de modifier les conditions d'expiration du mot de passe (l'option -l utilisateur
listant la configuration actuelle). On pourra d'ailleurs forcer l'expiration d'un mot de passe grâce à la commande passwd -e utilisateur
, qui obligera l'utilisateur à changer son mot de passe à la prochaine connexion.
On peut se trouver dans l'obligation de « bloquer le compte » d'un utilisateur, par mesure disciplinaire, dans le cadre d'une enquête, ou tout simplement en cas de départ prolongé ou définitif de l'utilisateur. Il s'agit en fait de l'empêcher de se connecter à nouveau, sans pour autant détruire son compte et ses fichiers. Cela s'effectue simplement par la commande passwd -l utilisateur
(lock, ou bloquer). La remise en service s'effectue de même, avec l'option -u
(unlock, ou débloquer).
8.4.5. Liste des groupes : /etc/group
La liste des groupes est stockée dans le fichier /etc/group
, simple base de données textuelle au format comparable à celui de /etc/passwd
, qui utilise les champs suivants :
identifiant (le nom du groupe) ;
gid
: numéro unique identifiant le groupe ;
liste des membres : liste des identifiants d'utilisateurs membres du groupe, séparés par des virgules.
Les commandes addgroup
et delgroup
permettent respectivement de créer et de supprimer un groupe. La commande groupmod
modifie les informations d'un groupe (son gid
ou son identifiant). La commande gpasswd groupe
modifiera le mot de passe d'un groupe, tandis que la commande gpasswd -r groupe
le supprimera.