En fait, / etc / shadow a été créé pour permettre d’éloigner de une liste de noms d’utilisateur et de mots de passe lisibles publiquement.
Attendez, ce sera un peu une leçon d’histoire, avant d’arriver à la réponse. Si vous ne vous souciez pas de l’histoire, faites défiler un peu.
Autrefois, les systèmes d'exploitation de type Unix, y compris Linux, conservaient généralement tous les mots de passe dans / etc / passwd. Ce fichier était lisible par tous les utilisateurs et l'est toujours, car il contient des informations permettant par exemple de mapper des identifiants d'utilisateurs numériques et des noms d'utilisateur. Cette information est très utile, même pour les utilisateurs ordinaires, à des fins parfaitement légitimes. Il est donc très utile d’avoir un fichier lisible dans le monde entier.
Même à l’époque, les gens se sont rendu compte qu’avoir les mots de passe en texte clair dans un fichier dans un endroit connu que toute personne pouvant se connecter pouvait lire librement était une mauvaise idée. Les mots de passe ont donc été hachés, dans un sens. C'est le vieux mécanisme de hachage de mot de passe «crypt», qui n'est presque jamais utilisé sur les systèmes modernes, mais souvent pris en charge à des fins héritées.
Regardez / etc / passwd sur votre système. Voir ce deuxième champ, qui dit x
partout? Il contenait le mot de passe haché du compte en question.
Le problème était que les gens pouvaient télécharger / etc / passwd, ou même ne pas le télécharger, et travailler à déchiffrer les mots de passe. Ce n'était pas un gros problème alors que les ordinateurs n'étaient pas particulièrement puissants (Clifford Stoll, dans The Cuckoo's Egg , donne, si je me souviens bien, le temps de hacher un mot de passe sur un système IBM PC class environ une seconde au milieu des années 1980), mais la capacité de traitement s’est accrue. À un moment donné, avec une liste de mots décente, il était trop facile de déchiffrer ces mots de passe. Pour des raisons techniques, ce schéma ne pouvait pas non plus prendre en charge les mots de passe de plus de huit octets.
Deux choses ont été faites pour résoudre ce problème:
- Passer à des fonctions de hachage plus fortes. L'ancienne crypt () avait dépassé sa durée de vie utile, et des schémas plus modernes, à la fois pérennes et calculables, ont été mis au point.
- Déplacez les mots de passe hachés dans un fichier illisible par n'importe qui. De cette façon, même si une fonction de hachage de mot de passe s'avérait plus faible que prévu ou si quelqu'un avait un mot de passe faible pour commencer, un attaquant avait un autre obstacle pour accéder aux valeurs de hachage. Ce n'était plus gratuit pour tous.
Ce fichier est / etc / shadow.
Le logiciel qui fonctionne avec / etc / shadow est généralement très petit, très ciblé et a tendance à recevoir un examen plus approfondi en raison des problèmes potentiels. Il fonctionne également avec des autorisations spéciales, ce qui lui permet de lire et de modifier / etc / shadow, tout en empêchant les utilisateurs ordinaires d’examiner ce fichier.
Donc là vous l'avez: Les autorisations sur / etc / shadow sont restrictives (bien que, comme déjà indiqué, ce n'est pas tout à fait aussi restrictif que vous le dites) car le but de ce fichier est de restreindre l'accès aux fichiers sensibles. données.
Un hachage de mot de passe est supposé être puissant, mais si votre mot de passe se trouve sur les listes Top 500 mots de passe sur Internet , toute personne ayant accès au hachage pourra toujours trouver le mot de passe rapidement. Protéger le hachage empêche cette attaque simple et fait en sorte que toute attaque réussie, du simple coup d’œil à l’exigence d’être un administrateur système sur l’hôte, ou d’attaques d’élévation de privilèges en premier lieu. Surtout sur un système multi-utilisateurs correctement administré, ces deux problèmes sont significativement plus difficiles que de simplement regarder un fichier lisible dans le monde entier.