Dans Linux, les mots de passe sont stockés en toute sécurité dans les fichiers système et les bases de données afin de gérer l’authentification des utilisateurs et le contrôle d’accès. Il est essentiel pour les administrateurs système et les professionnels de la sécurité de comprendre où Linux stocke les mots de passe et comment ils sont sécurisés.

1. Le fichier /etc/passwd (informations sur l’utilisateur)

Le fichier /etc/passwd contient une liste de tous les utilisateurs du système, ainsi que des informations de base sur leur compte.

Exemple d’entrée dans le fichier /etc/passwd :

username:x:1001:1001:User Name:/home/username:/bin/bash

Champs expliqués :

  • username: Le nom de connexion de l’utilisateur.
  • x: Caractère générique indiquant que le mot de passe est stocké dans un fichier séparé.
  • 1001:1001: ID de l’utilisateur (UID) et ID du groupe (GID).
  • Nom de l’utilisateur: Nom complet ou description de l’utilisateur.
  • /home/username: répertoire personnel de l’utilisateur.
  • /bin/bash: L’interpréteur de commandes par défaut attribué à l’utilisateur.

2. Le fichier /etc/shadow (mots de passe cryptés)

Linux stocke les hachages de mots de passe réels dans le fichier /etc/shadow, qui n’est accessible que par l’utilisateur root.

Exemple d’entrée dans le fichier /etc/shadow :

username:$6$abc123$XYZhashedpassword:18528:0:99999:7:::

Explication des champs :

  • $6$: Indique l’algorithme de cryptage (SHA-512 dans ce cas).
  • abc123: Sel utilisé pour hacher le mot de passe.
  • XYZhashedpassword: Le mot de passe haché actuel.
  • 18528: Date du dernier changement de mot de passe.
  • 0:99999:7: Informations sur le vieillissement du mot de passe (validité minimale et maximale du mot de passe).

Vérification de l’algorithme de hachage du mot de passe :

Pour connaître l’algorithme de hachage utilisé, exécutez la commande suivante

cat /etc/shadow | grep username

3. Le fichier /etc/group (informations sur les groupes)

Le fichier /etc/group contient des informations sur les groupes d’utilisateurs et leurs membres.

Exemple d’entrée dans le fichier /etc/group :

developers:x:1002:username1,username2

4. Le répertoire /var/lib/AccountsService/ (comptes utilisateurs de l’interface graphique)

Certaines distributions Linux stockent les préférences des comptes d’utilisateurs pour les connexions à l’interface graphique dans le répertoire /var/lib/AccountsService/users/ :

/var/lib/AccountsService/users/

Ces fichiers contiennent des métadonnées telles que les noms d’affichage et les préférences de session, mais ne stockent pas les mots de passe.

5. Commandes de gestion des mots de passe

Modifier le mot de passe de l’utilisateur :

passwd username

Afficher les informations sur le vieillissement du mot de passe :

chage -l username

Forcer les utilisateurs à changer de mot de passe lors de leur prochaine connexion :

passwd --expire username

6. Comment Linux sécurise les mots de passe

  • Hachage et salage : Les mots de passe ne sont jamais stockés en texte clair. Au contraire, ils sont hachés et salés pour empêcher leur récupération directe.
  • Accès réservé à la racine : Les fichiers tels que /etc/shadow sont limités à l’accès de la racine.
  • Modules d’authentification enfichables (PAM) : L’authentification Linux est gérée par PAM, qui applique les politiques de sécurité des mots de passe.

Conclusion

Linux stocke en toute sécurité les informations d’identification des utilisateurs dans des fichiers système tels que /etc/passwd et /etc/shadow, garantissant ainsi un accès crypté et restreint. La compréhension de ces mécanismes de stockage est essentielle pour la sécurité du système et la gestion des utilisateurs.