Le fichier /etc/shadow de Linux

Qu'avons-nous dans la boîte ?
Sous Linux, il existe plusieurs schémas d’authentification différents qui peuvent être utilisés, et le schéma le plus fréquemment utilisé consiste à effectuer l’authentification en s’appuyant sur les fichiers /etc/passwd et /etc/shadow. C’est un standard correspondant à la configuration par défaut des distributions Linux.
Le fichier « /etc/shadow » est un fichier texte qui contient des informations sur les mots de passe des utilisateurs du système. Le super-utilisateur root est le propriétaire de fichier, et le groupe shadow est associé. Les permissions suivantes sont posées sur ce fichier : 640.
1. Le format du fichier /etc/shadow
Le fichier /etc/shadow contient une entrée par ligne, et chaque ligne représente un compte utilisateur. Vous pouvez visualiser le contenu du fichier, avec un éditeur de texte (nano, vi, etc.) ou la commande cat :
sudo cat /etc/shadow
En général, la première ligne décrit l’utilisateur « root » de votre machine, suivi de quelques comptes du système puis des comptes utilisateurs lambda. Les nouvelles entrées sont ajoutées à la fin du fichier. C’est ce qui se passe lorsqu’un nouvel utilisateur est créé sur la machine.
Si l’on parle du format de ce fichier, il faut savoir que chaque ligne du fichier /etc/shadow contient neuf champs séparés par le symbole « : ». Ce qui donne :
<valeur 1>:<valeur 2>:<valeur 3>:<valeur 4>:<valeur 5>:<valeur 6>:<valeur 7>:<valeur 8>:<valeur 9>
Ces différents champs correspondent à :
– Nom d’utilisateur : l’identifiant de l’utilisateur indiqué lors de la création et lorsque vous vous connectez au système. Cela indique que le compte existe sur le système.
– Mot de passe chiffré : le mot de passe obtenu avec l’algorithme de hachage cryptographique (plusieurs possibilités). Il est à noter que si le champ correspondant au mot de passe contient un astérisque (« * ») ou un point d’exclamation (« ! »), l’utilisateur ne pourra pas se connecter au système en utilisant l’authentification par mot de passe. Dans ce cas, il doit utiliser l’authentification par clé, etc.
– Dernier changement de mot de passe : il s’agit de la date à laquelle le mot de passe a été modifié pour la dernière fois, ce qui est une donnée particulièrement intéressante. Néanmoins, il y a un calcul à faire puisqu’il s’agit du nombre de jours depuis le 1er janvier 1970.
– Âge minimum du mot de passe : le nombre de jours qui doivent s’écouler avant que l’utilisateur ait l’autorisation de modifier son mot de passe. Quand c’est indiqué « 0 », cela signifie qu’il n’y a pas d’âge minimum pour le mot de passe : l’utilisateur peut le changer quand il le souhaite.
– Âge maximum du mot de passe : le nombre de jours qui doivent s’écouler avant que le mot de passe de l’utilisateur ne soit modifié. Par défaut, ce nombre est fixé à 99999.
– Période d’avertissement : Le nombre de jours avant l’expiration du mot de passe pendant lesquels l’utilisateur est averti que le mot de passe doit être changé (pour repartir sur un nouveau cycle).
– Période d’inactivité : le nombre de jours après l’expiration du mot de passe de l’utilisateur avant que le compte de l’utilisateur ne soit désactivé. Bien souvent, c’est vide.
– Date d’expiration : la date à laquelle le compte a été désactivé.
– Inutilisé : ce neuvième et dernier champ n’est pas utilisé à ce jour.
À moins d’être sûr de votre coup, il vaut mieux éviter de modifier le fichier /etc/shadow à la main. Disons que c’est à vos risques et périls… Pour changer le mot de passe d’un utilisateur, on ne va pas modifier directement le mot de passe dans ce fichier, on va utiliser la commande « passwd », et c’est cette commande qui viendra mettre à jour le fichier.
La liste ci-dessus reprend les champs, dans l’ordre.
2. Exemple d’une entrée de /etc/shadow
Pour finir cet article, voici un exemple d’une entrée du fichier /etc/shadow correspondante à l’utilisateur « tutobox ». Quand il n’y a pas de valeur entre deux « : » cela signifie que le champ est vide.
tutobox:$y$j9T$MxhuLR9v1rXyStI8ch......:19000:0:365:7:::
Par exemple, on peut interpréter cette ligne, notamment pour voir que le mot de passe doit être changé tous les 365 jours.

Maintenant, à c’est vous de faire un tour dans le fichier /etc/shadow de votre machine Linux et de l’analyser !
Ressources