Qu’est-ce que le fichier Linux / etc / shadow et que fait-il?

En poussant dans vos fichiers système Linux, vous avez peut-être rencontré un fichier dans le répertoire / etc nommé shadow . Cela peut sembler effrayant, mais c'est vraiment un fichier sûr, nécessaire et utile pour l'administration du système.

Aujourd'hui, nous allons examiner de plus près le contenu du fichier / etc / shadow et ce qu'il peut vous dire sur votre système.

Qu'est-ce que / etc / shadow?

Aussi mystérieux que cela puisse paraître, la fonction du fichier est assez simple. Le fichier / etc / shadow contient des informations sur les utilisateurs d'un système Linux, leurs mots de passe et les règles de temps pour leurs mots de passe.

Lorsque vous créez ou modifiez un mot de passe sous Linux , le système le hache et le stocke dans le fichier miroir. Toutes les règles de mot de passe attribuées par l'administrateur, telles que les dates d'expiration et les périodes d'inactivité, resteront également ici. Le fichier miroir peut alors indiquer aux protocoles d'authentification si le mot de passe d'un utilisateur est correct, par exemple, ou quand il a expiré.

Vous ne devez jamais modifier directement le fichier shadow. Il est maintenu par des processus automatisés et n'est pas destiné à être modifié par les utilisateurs réguliers. Néanmoins, les informations qu'il contient peuvent être précieuses pour vous, cela vaut donc la peine d'y jeter un coup d'œil.

Que contient le fichier shadow Linux?

Pour voir le contenu du fichier shadow, ouvrez un terminal et exécutez la commande cat dessus:

 sudo cat /etc/shadow

Vous verrez une invite vous demandant votre mot de passe. En supposant que vous ayez des autorisations administratives, vous verrez une impression de chaînes de texte qui ressemblent à ceci (des ellipses marquent l'endroit où la chaîne a été coupée pour s'adapter à votre écran):

 muo1:$6$IK2...$20a...:18731:0:99999:7:::

Cela a l'air cryptique et, en fait, une partie est du texte crypté. La chaîne suit une construction particulière, cependant, et maisons bits d'information spécifiques, délimitée par les deux points: caractère ().

Voici une présentation complète de la chaîne:

 [username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

Examinons de plus près chacun de ces champs:

1. Nom d'utilisateur

Tout ce qui suit dans la chaîne est associé à ce nom d'utilisateur.

2. Mot de passe

Le champ de mot de passe se compose de trois champs supplémentaires, délimités par des signes dollar: $ id $ salt $ hash .

  • id: Ceci définit l'algorithme de cryptage utilisé pour crypter votre mot de passe. Les valeurs peuvent être 1 (MD5), 2a (Blowfish), 2y (Eksblowfish), 5 (SHA-256) ou 6 (SHA-512).
  • salt: il s'agit du sel utilisé pour crypter et authentifier le mot de passe.
  • hash: il s'agit du mot de passe de l'utilisateur tel qu'il apparaît après le hachage. Le fichier miroir conserve une version hachée de votre mot de passe afin que le système puisse vérifier toute tentative de saisie de votre mot de passe.

En savoir plus: définition des termes de chiffrement de base

Parfois, le champ du mot de passe ne contient qu'un astérisque ( * ) ou un point d'exclamation ( ! ). Cela signifie que le système a désactivé le compte de l'utilisateur ou que l'utilisateur doit s'authentifier par des moyens autres qu'un mot de passe. C'est souvent le cas pour les processus système (également appelés pseudo-utilisateurs) que vous êtes susceptible de trouver également dans le fichier shadow.

3. Date du dernier changement de mot de passe

Vous trouverez ici la dernière fois que cet utilisateur a changé son mot de passe. Notez que le système affiche la date au format d' heure Unix .

4. Âge minimum du mot de passe

Vous trouverez ici le nombre de jours pendant lesquels l'utilisateur doit attendre après avoir modifié son mot de passe avant de le modifier à nouveau.

Si le minimum n'est pas défini, la valeur ici sera 0.

5. Âge maximum du mot de passe

Cela définit la durée pendant laquelle un utilisateur peut rester sans modifier son mot de passe. Changer fréquemment votre mot de passe a ses avantages , mais par défaut, la valeur sera fixée à 99 999 jours généreux. Cela fait près de 275 ans.

6. Période d'avertissement

Ce champ détermine le nombre de jours avant qu'un mot de passe ait atteint son âge maximum, pendant lesquels l'utilisateur recevra des rappels pour changer son mot de passe.

7. Période d'inactivité

Il s'agit du nombre de jours qui peuvent s'écouler après que le mot de passe de l'utilisateur a atteint son âge maximum avant que le système ne désactive le compte. Considérez cela comme une "période de grâce" pendant laquelle l'utilisateur a une seconde chance de changer son mot de passe, même s'il est techniquement expiré.

8. Date d'expiration

Cette date correspond à la fin de la période d'inactivité pendant laquelle le système désactivera automatiquement le compte de l'utilisateur. Une fois désactivé, l'utilisateur ne pourra pas se connecter tant qu'un administrateur ne le réactivera pas.

Ce champ sera vide s'il n'est pas défini, et s'il est défini, la date apparaîtra dans l'heure de l'époque.

9. Inutilisé

Ce champ ne sert actuellement à rien et est réservé pour une utilisation future potentielle.

Le fichier fantôme expliqué

Le fichier shadow n'est vraiment pas du tout mystérieux. N'oubliez pas, cependant, que si vous souhaitez modifier les mots de passe et les règles de mot de passe, vous devez éviter de modifier directement le fichier miroir et opter plutôt pour utiliser les outils désignés à cet effet.

Chaque fois que vous ajoutez un nouvel utilisateur à votre système Linux, le fichier / etc / shadow est automatiquement modifié pour stocker les informations d'authentification sur l'utilisateur.