next up previous contents Next: La commande groups et Up: Comptes d'utilisateurs et droits. Previous: Le fichier des mots   Table des matières  


12.3 Le fichier /etc/shadow.

Le problème des fichiers passwd traditionnels est qu'ils sont lisibles par tous (world readable) [n'importe qui sur le système peut lire le fichier passwd].Ceci permet aux programmes d'y extraire des informations au sujet d'un utilisateur, telles que son nom complet. Ceci veut donc dire que tout le monde peut lire le mot de passe crypté dans le second champ. Aussi, tout le monde peut-il copier le champ ``mot de passe'' d'un utilisateur et essayer des milliards de mots de passe jusqu'à ce qu'un des mots cryptés ainsi composé corresponde au mot de passe crypté de l'utilisateur. Si vous avez une centaine d'utilisateurs sur votre système, il se peut que plusieurs d'entre eux choisissent un mot du dictionnaire comme mot de passe. Les attaques par le dictionnaire consiste à tester les 80.000 mots d'anglais courant pour trouver une correspondance. Si vous pensez qu'il est astucieux d'ajouter un nombre en préfixe à un mot du dictionnaire, sachez que les algorithmes de craquage des mots de passe savent ça aussi [comme c'est d'ailleurs le cas pour d'autres astuces]. C'est pour résoudre ce problème que les mots de passe cryptés ont été inventés. Le fichier des mots de passe cryptés est exclusivement utilisé lors de l'étape d'authentification [en vérifiant que l'utilisateur est le véritable détenteur du compte]. Il n'est pas lisible par tous et aucun utilisateur normal n'a le droit de voir le champ ``mot de passe chiffré''. Il n'y a pas d'information dans ce fichier nécessaire aux programmes. Les champs du fichier/etc/shadow sont séparés par des doubles points comme c'est le cas du fichier /etc/passwd:

jack:Q,Jpl.or6u2e7:10795:0:99999:7:-1:-1:134537220 

jack
est le nom d'utilisateur

Q,Jpl.or6u2e7
est le mot de passe chiffré résultant d'une transformation irréversible d'un mot de passe à 8 caractères. Un algorithme mathématique est appliqué au mot de passe de manière à produire un résultat unique pour chaque mot de passe. Pour s'en convaincre, le mot de passe Loghimin (plutôt simple) est converti en: 1Z1F.0VSRRucs dans le fichier /etc/shadow. Le mot quasi-identique loghimin donne une transformation totalement différente: CavHIpD1w.cmg. Donc pour retrouver le mot de passe à partir du mot chiffré, il faudrait essayer chaque mot possible. Bien qu'une attaque brutale de ce type soit considérée comme coûteuse du point de vue de la charge de calcul, elle n'est pas impossible. Pour vérifier si un mot de passe est bon, il suffit de lui appliquer l'algorithme permettant de vérifier la correspondance avec le mot de passe crypté. C'est comme cela que fonctionne la commande login. Si vous voyez un signe * à la place du mot chiffré, cela signifie que le compte a été désactivé.

10795
c'est le nombre de jours entre le 1er janvier 1970 et la date de dernier changement du mot de passe.

0
c'est le nombre de jours avant que le mot de passe ne puisse être changé. Usuellement, la valeur est = 0. Ce champ n'est pas souvent utilisé.

99999
correspond au nombre de jours après quoi le mot de passe doit être modifié. Ce champ est rarement utilisé. Par défaut, sa valeur est 99999.

7
nombre de jours pour lequel un utilisateur est averti que son mot de passe expirera.

-1
est le nombre de jours après quoi le mot de passe expire de sorte que le compte est désactivé. -1 est utilisé pour indiquer un nombre infini de jours (ce qui veut dire que cette propriété du compte n'est pas considérée).

-1
est le nombre de jours entre le 1er janvier 1970 et la date de désactivation du compte.

134537220
est un indicateur réservé à un usage ultérieur.


next up previous contents Next: La commande groups et Up: Comptes d'utilisateurs et droits. Previous: Le fichier des mots   Table des matières  
1-01-2006