découvrez le format du fichier /etc/shadow sous linux, le rôle des mots de passe chiffrés et les précautions pour protéger les comptes utilisateurs.

Comprendre le format et le rôle des mots de passe dans etc shadow sous Linux

Dans Linux, le fichier /etc/shadow protège les informations sensibles liées aux mots de passe et indique quand ceux-ci doivent être renouvelés. Comprendre ses neuf champs permet de mieux lire l’état d’un compte, de repérer un mot de passe verrouillé et d’éviter les manipulations risquées. Voici comment l’interpréter sans confondre hachage, expiration et désactivation du compte.

L’article en bref

Le fichier /etc/shadow associe à chaque compte un hachage de mot de passe et des règles de validité. Savoir lire ses champs aide à diagnostiquer un accès sans exposer les secrets du système.

  • Un fichier protégé : Ses permissions d’accès limitent la lecture des hachages aux comptes autorisés.
  • Neuf champs à décoder : Chaque entrée décrit l’utilisateur, son mot de passe et sa validité.
  • Un hachage, pas un mot de passe : Le sel cryptographique complique les attaques par dictionnaire hors ligne.
  • Des commandes adaptées : passwd et chage permettent de gérer les comptes sans édition manuelle.

Ce repère vous aide à distinguer un mot de passe expiré d’un compte réellement désactivé.

Le rôle du fichier /etc/shadow dans l’authentification Linux

Le fichier /etc/shadow stocke les hachages des mots de passe et les données de vieillissement associées aux comptes locaux. Il travaille avec /etc/passwd, qui contient notamment le nom de connexion, l’identifiant utilisateur, le répertoire personnel et le shell, mais pas le hachage du mot de passe.

Cette séparation réduit l’exposition des données sensibles : /etc/passwd doit être consultable par plusieurs outils et utilisateurs, tandis que les permissions d’accès à shadow sont restreintes. Selon la distribution, le fichier appartient généralement à root et au groupe shadow, ou à root seul ; ses droits exacts peuvent donc varier. La commande stat -c ‘%A %U:%G’ /etc/shadow permet d’en vérifier la configuration sans afficher son contenu.

Dans l’usage courant, un utilisateur standard ne peut pas lire les entrées protégées. L’administrateur root, lui, peut accéder au fichier ; il reste préférable de consulter les informations avec les outils prévus plutôt que d’afficher tous les hachages dans un terminal partagé.

A lire aussi :  Fichier secret docx : comment retrouver et ouvrir un document caché sur Mac ou LibreOffice

Un hachage plutôt qu’un mot de passe en clair

Le champ du mot de passe contient habituellement une valeur calculée à partir du secret choisi, et non le secret lui-même. Ce hachage des mots de passe est conçu pour permettre au système de vérifier une tentative de connexion sans conserver le mot de passe en clair.

La chaîne peut inclure un identifiant d’algorithme, un sel cryptographique et le résultat du calcul. Le sel n’est pas un mot de passe supplémentaire : il rend moins efficaces les tables précalculées et oblige à traiter séparément les hachages, même lorsque deux personnes choisissent le même secret. Le format exact dépend de l’algorithme et de la configuration de la distribution.

Format des entrées : les neuf champs du fichier shadow

Chaque ligne correspond à un compte et contient neuf champs séparés par le caractère deux-points. Le nom doit correspondre à un compte connu du système ; les valeurs suivantes décrivent le mot de passe, son calendrier de renouvellement et, éventuellement, la date de fin du compte.

Pour visualiser la structure sans révéler de données réelles, voici un modèle volontairement fictif : nora:$y$exemple_hache:20000:0:120:7:14:22000:. Les valeurs de hachage et de dates sont illustratives : elles ne doivent pas être reprises comme configuration prête à l’emploi.

Champ Information Repère utile
1 Nom de connexion Correspond au compte utilisateur.
2 Mot de passe ou marqueur Contient généralement un hachage, ou un symbole de verrouillage.
3 Date du dernier changement Nombre de jours écoulés depuis le 1er janvier 1970 ; 0 peut imposer un changement à la prochaine connexion.
4 Âge minimum Nombre de jours avant qu’un nouveau changement soit autorisé.
5 Âge maximum Délai au-delà duquel le système demande le renouvellement du mot de passe.
6 Délai d’avertissement Nombre de jours pendant lesquels l’utilisateur est averti avant l’expiration.
7 Période d’inactivité Délai après expiration pendant lequel une mise à jour reste possible à la connexion.
8 Expiration du compte Date de fin du compte, exprimée en jours depuis le 1er janvier 1970.
9 Champ réservé Prévu pour un usage futur et généralement laissé vide.

Les champs vides ont un sens : par exemple, l’absence de date d’expiration indique généralement qu’aucune échéance de compte n’est définie. Un champ vide pour l’âge minimum ou la période d’avertissement équivaut couramment à l’absence de règle correspondante ; l’interprétation de certaines valeurs dépend toutefois des outils et politiques configurés sur la machine.

A lire aussi :  Tablette : pour quels usages, et comment bien la choisir

Il faut aussi distinguer expiration des mots de passe et expiration du compte. Dans le premier cas, le système peut demander un nouveau mot de passe ; dans le second, le compte n’est plus autorisé à se connecter. Une expiration suivie d’une période d’inactivité dépassée peut également nécessiter l’intervention d’un administrateur.

Lire les marqueurs de mot de passe et comprendre le verrouillage des comptes

Un champ de mot de passe commençant par un point d’exclamation indique généralement que le mot de passe est verrouillé. Le hachage qui suit peut rester présent : le marqueur empêche alors l’authentification par ce mot de passe, sans nécessairement bloquer les autres méthodes d’accès configurées.

Une étoile ou une chaîne telle que !! peut signaler qu’aucun mot de passe utilisable n’est défini ou que l’authentification par mot de passe n’est pas disponible pour ce compte. Le sens précis dépend de l’historique du compte et des outils utilisés. Il ne faut donc pas déduire qu’un utilisateur ne peut accéder au système par aucune voie : une clé SSH ou un autre mécanisme peut rester actif.

  • Un champ contenant un hachage : Le compte peut utiliser l’authentification par mot de passe, sous réserve des autres règles du système.
  • Un point d’exclamation en préfixe : Le mot de passe est généralement verrouillé pour la connexion.
  • Une étoile ou !! : Le compte peut ne pas disposer d’un mot de passe utilisable.
  • Un champ vide : Il peut signifier qu’aucun mot de passe n’est requis, mais des règles PAM ou applicatives peuvent tout de même refuser la connexion.

Ces marqueurs ne remplacent pas l’examen des journaux et des paramètres d’authentification. Pour un diagnostic fiable, il faut aussi vérifier les services utilisés, par exemple SSH, ainsi que leurs propres règles d’accès.

Consulter et modifier les règles sans éditer /etc/shadow

Modifier directement ce fichier avec un éditeur est risqué : une erreur de séparateur ou de valeur peut perturber la connexion d’un compte. Les commandes de gestion mettent à jour les champs de façon plus sûre et sont plus lisibles lors d’une maintenance.

A lire aussi :  IP interface : commandes pour activer, désactiver et afficher les interfaces sous Linux

Pour l’utilisateur fictif Nora, un administrateur peut consulter les règles avec sudo chage -l nora, puis modifier un mot de passe avec sudo passwd nora. Pour rechercher une entrée précise dans la base de comptes, sudo getent shadow nora peut être utilisé, en gardant à l’esprit que cette commande affiche une donnée sensible et doit rester réservée à un terminal approprié.

  1. Consulter les échéances : utilisez sudo chage -l nom_utilisateur pour afficher les règles de vieillissement.
  2. Changer un mot de passe : utilisez sudo passwd nom_utilisateur plutôt que de toucher au hachage manuellement.
  3. Définir une durée maximale : utilisez sudo chage -M nombre_de_jours nom_utilisateur selon la politique retenue.
  4. Forcer un changement à la prochaine connexion : utilisez sudo chage -d 0 nom_utilisateur.
  5. Verrouiller ou déverrouiller l’authentification par mot de passe : utilisez sudo passwd -l ou sudo passwd -u avec le compte concerné.

Un verrouillage par passwd concerne le mot de passe ; il ne garantit pas à lui seul la désactivation de toutes les méthodes d’accès. Pour retirer complètement l’accès à un compte, l’administrateur doit examiner les services, les clés et les politiques locales concernés.

Le fichier /etc/shadow- peut exister comme sauvegarde produite par certains outils de la suite shadow. Il n’est pas utilisé de manière uniforme par tous les outils de gestion des comptes : sa présence ne dispense donc pas d’une stratégie de sauvegarde adaptée.

Questions pratiques sur les mots de passe dans /etc/shadow

Quelle différence entre /etc/passwd et /etc/shadow ?

/etc/passwd rassemble les informations générales du compte, comme son identifiant et son shell. /etc/shadow conserve les hachages de mots de passe et les règles de validité, avec un accès plus restreint.

Un hachage présent dans /etc/shadow est-il un mot de passe chiffré réversible ?

Non. Il s’agit normalement d’un hachage destiné à la vérification, pas d’un mot de passe que l’on peut simplement déchiffrer. Un hachage faible peut toutefois être recherché par essais, d’où l’intérêt d’algorithmes adaptés et de mots de passe robustes.

Que signifie un point d’exclamation dans le champ du mot de passe ?

Il indique généralement que l’authentification par ce mot de passe est verrouillée. D’autres voies d’accès, comme une clé SSH, peuvent rester possibles selon la configuration.

Comment forcer un changement de mot de passe à la prochaine connexion ?

Un administrateur peut utiliser sudo chage -d 0 nom_utilisateur. La modification passe ainsi par un outil prévu pour gérer les champs de validité.

Peut-on laisser un champ de mot de passe vide ?

Certaines configurations ou applications peuvent traiter un champ vide comme une authentification sans mot de passe, tandis que d’autres refusent l’accès. Cette situation réduit la sécurité des comptes et doit être évitée.

Retour en haut