Product SiteDocumentation Site

8.4. Base de données des utilisateurs et des groupes

The list of users is usually stored in the /etc/passwd file, while the /etc/shadow file stores hashed passwords. Both are text files, in a relatively simple format, which can be read and modified with a text editor. Each user is listed there on a line with several fields separated with a colon (“:”).

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 :
  • identifiant (ou login) ;
  • mot de passe chiffré ;
  • plusieurs champs de gestion de l'expiration du mot de passe.

8.4.3. Modifier un compte ou mot de passe existant

The following commands allow modification of the information stored in specific fields of the user databases: passwd permits a regular user to change their password, which in turn, updates the /etc/shadow file; chfn (CHange Full Name), reserved for the super-user (root), modifies the GECOS field. chsh (CHange SHell) allows the user to change their login shell; however, available choices will be limited to those listed in /etc/shells; the administrator, on the other hand, is not bound by this restriction and can set the shell to any program of their choosing.
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.

8.4.4. Bloquer un compte

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) ;
  • mot de passe (facultatif) : il ne sert qu'à intégrer un groupe dont on n'est pas habituellement membre (avec la commande newgrp ou sg — voir encadré B.A.-BA Travailler avec plusieurs groupes) ;
  • gid : numéro unique identifiant le groupe ;
  • liste des membres : liste des identifiants d'utilisateurs membres du groupe, séparés par des virgules.
The addgroup and delgroup commands add or delete a group, respectively. The groupmod command modifies a group's information (its gid or identifier). The command gpasswd group changes the password for the group, while the gpasswd -r group command deletes it.