Comment Linux stocke et gère les mots de passe des utilisateurs 1

Comment Linux stocke et gère les mots de passe des utilisateurs

Vous êtes-vous demandé comment Linux gère efficacement un environnement multi-utilisateurs ? Dans cet article, nous expliquons comment Linux stocke et gère les mots de passe et les connexions des utilisateurs.

Exploration du fichier /etc/passwd

Lorsqu’un utilisateur saisit un nom d’utilisateur et un mot de passe, Linux vérifie le mot de passe saisi par rapport à une entrée dans plusieurs fichiers du répertoire « /etc ».

Le « /etc/passwd » est l’un des fichiers les plus importants qui stocke les détails de l’utilisateur.

La dernière entrée de ce fichier correspond aux utilisateurs « carbone ». Il existe plusieurs champs d’informations séparés par des deux-points (:).

  • carbon : nom de l’utilisateur auquel correspond cette entrée.
  • x : indique qu’un mot de passe existe pour l’utilisateur. Cependant, le mot de passe est stocké dans le fichier « /etc/shadow ». Si au lieu de x il montre un ! symbole, cela indique qu’un mot de passe n’existe pas.
  • 1000 : ID utilisateur de cet utilisateur.
  • 1000: ID de groupe du groupe auquel appartient cet utilisateur.
  • carbon, , , : indiquant plusieurs champs d’information, y compris le nom complet et les numéros de téléphone. Ici, aucun numéro de téléphone n’a été fourni.
  • /home/carbon : emplacement du répertoire personnel attribué à cet utilisateur.
  • /bin/bash : shell par défaut attribué à cet utilisateur.

Créons un autre utilisateur pour lequel des numéros de téléphone ont été enregistrés. L’utilisateur « pluto » est ajouté au système à l’aide de la adduser commander.

champ GECOS utilisateur linux

En regardant à nouveau le fichier « etc/passwd », nous pouvons voir les informations complètes pour l’utilisateur « pluto ». Le champ qui contient une liste de noms complets et de numéros séparés par des virgules est appelé « champ GECOS ».

afficher /etc/passwd avec les détails du téléphone

Chaque fois qu’un utilisateur est créé, les valeurs du répertoire personnel et du shell par défaut qui doivent être assignés sont spécifiées dans le fichier « /etc/adduser.conf ».

adduser.conf

Les ID utilisateur pour les utilisateurs créés commencent à partir de 1 000 et vont jusqu’à 59 999.

L’utilisateur « carbon » a pu visualiser les entrées du fichier « /etc/passwd » simplement en utilisant le cat commander. Jetons un coup d’œil à ses autorisations.

autorisation du fichier /etc/passwd

Seul l’utilisateur « root » peut écrire dans le fichier. Les autres utilisateurs ne peuvent que lire le fichier. Étant donné que ce fichier est lisible par tout le monde, il n’est pas idéal de stocker les mots de passe ici. Au lieu de cela, il est stocké dans un autre fichier appelé « /etc/shadow ».

Exploration du fichier /etc/shadow

Essayons maintenant de visualiser le mot de passe stocké pour les utilisateurs « carbon » et « pluto » dans le fichier « /etc/shadow ».

/etc/shadow permission refusée

En regardant les autorisations pour le fichier « /etc/shadow », nous pouvons voir que seul l’utilisateur « root » peut lire et écrire dans le fichier. De plus, seuls les membres du groupe « shadow » peuvent lire le fichier. En réalité, le groupe « shadow » est vide mais est syntaxiquement requis pour ce fichier.

autorisation de fichier /etc/shadow

En se connectant en tant que « root », nous pouvons voir les dix dernières lignes de « /etc/shadow ». Pour chaque entrée dans « /etc/passwd », il y a une entrée correspondante dans ce fichier. Le format sera comme ceci :

afficher les entrées /etc/shadow

Dans ce fichier également, chaque entrée a plusieurs champs séparés par des deux-points (:). Décryptons l’entrée de l’utilisateur « pluto ».

  • pluto : nom de l’utilisateur auquel correspond cette entrée.
  • $6$JvWfZ9u.$yGFIqOJ.... : Le mot de passe utilisateur haché stocké avec des informations sur l’algorithme de hachage utilisé. De plus, une valeur salt est utilisée avec le mot de passe en clair pour générer le hachage du mot de passe.

Traitons le contenu de ce champ. Les $ Le symbole est utilisé comme délimiteur pour séparer trois champs.

  • $6 : l’algorithme de hachage utilisé. Voici la liste des algorithmes de hachage potentiels.
    • 1 $ : MD5
    • $2a : Blowfish
    • $2y : Eksblowfish
    • 5 $ : SHA-256
    • 6 $ : SHA-512
  • $JvWfZ9u. : valeur de sel.
  • $yGFIqOJ.... : mot de passe haché.

La valeur de hachage résultante est stockée en tant que mot de passe crypté pour un utilisateur. La valeur de sel est unique pour chaque utilisateur. Même si deux utilisateurs ont le même mot de passe en clair, l’utilisation d’un sel unique générerait une valeur de hachage unique.

Après les champs restants de cette entrée,

  • 18283: Indique le nombre de jours depuis le 1er janvier 1970, le dernier changement de mot de passe
  • 0 : ce champ permet d’indiquer le nombre de jours après lequel le mot de passe peut être modifié. Une valeur de 0 signifie que le mot de passe peut être modifié à tout moment.
  • 99999 : ce champ indique le nombre de jours après lequel le mot de passe doit être modifié. Une valeur de 99999 indique qu’un utilisateur peut conserver le mot de passe aussi longtemps qu’il le souhaite.
  • 7 : si le mot de passe est configuré pour expirer, ce champ indique le nombre de jours pour avertir l’utilisateur de l’expiration du mot de passe.
  • : : : Trois autres champs font partie de cette entrée, bien qu’ils soient vides ici. Le premier indique le nombre de jours à attendre après l’expiration du mot de passe, après quoi le compte sera désactivé. Le second indique le nombre de jours depuis le 1er janvier 1970, qu’un compte a été désactivé. Le troisième champ est réservé pour une utilisation future. Les champs vides indiquent que le mot de passe existant pour cet utilisateur n’a pas expiré et n’est pas configuré pour expirer bientôt.

Les sept derniers champs relatifs à la validité du mot de passe sont collectivement censés contenir des informations sur la « Politique de vieillissement des mots de passe ».

Les valeurs par défaut correspondant à « Password Aging Policy » sont spécifiées dans le fichier « /etc/login.defs ». Ces valeurs peuvent être modifiées pour un utilisateur à l’aide de la change commander.

login.defs

Qu’en est-il des informations de groupe ?

Les informations utilisateur et les mots de passe sont stockés dans les fichiers « /etc/passwd » et « /etc/shadow ». De même, les informations de groupe sont stockées dans le fichier « /etc/group ».

afficher les entrées /etc/group

Les groupes appartenant aux utilisateurs « carbone » et « pluton » sont mis en évidence ci-dessus. Lorsqu’un utilisateur est créé sous Linux, cet utilisateur est immédiatement affecté à un groupe portant le même nom que le nom d’utilisateur.

Les membres d’un groupe peuvent également partager un mot de passe de groupe pour les activités liées au groupe. La valeur de x indique que les informations de mot de passe pour ce groupe seraient dans le fichier « /etc/gshadow ».

Cependant, l’accès à « /etc/gshadow » est limité à l’utilisateur « root ».

/etc/gshadow autorisation refusée

L’utilisateur « root » peut afficher les entrées de « /etc/gshadow », qui est similaire à « /etc/shadow ». En regardant l’entrée pour le groupe « carbone », nous pouvons voir que le deuxième champ a une valeur de !, ce qui indique qu’il n’existe pas de mot de passe pour ce groupe.

Mot de passe 11

Mettre tous ensemble

Lorsqu’un utilisateur souhaite se connecter, le hachage du mot de passe saisi est trouvé en utilisant la valeur salt de cet utilisateur dans « /etc/shadow ». Ensuite, il est comparé au hachage stocké. Si les valeurs correspondent, l’utilisateur obtient l’accès.

  • Comment réinitialiser le mot de passe root sous Linux
  • Comment gérer votre mot de passe utilisateur à partir du terminal sous Linux

Moyens I/O Staff est une équipe de rédacteurs spécialisés, passionnés par la technologie, l’innovation et les usages numériques. Forts d’une expertise pointue en IA, applications mobiles, gaming et tendances digitales, nous produisons un contenu rigoureux, vérifié et utile. Notre mission : vous offrir une information fiable et claire pour mieux naviguer dans le monde numérique en constante évolution. Découvrez les avis de nos lecteurs sur Trustpilot.