Nous savons que les mots de passe des utilisateurs sont enregistrés dans /etc/passwd
, mais de manière cryptée, donc même la racine ne peut pas les voir :
jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash
Comme indiqué ci-dessus, :x:
représente le mot de passe.
Existe-t-il un moyen (configuration possible) de sauvegarder le mot de passe dans le /etc/passwd
en texte clair et de sorte que la racine puisse les voir ?
Réponse acceptée :
Les deux autres réponses vous ont dit (à juste titre !) que c'est une mauvaise idée™ . Mais ils vous ont aussi dit que c'était difficile à faire, nécessitant de changer un tas de programmes.
Ce n'est pas vrai. C'est très facile. Il vous suffit de modifier un ou deux fichiers de configuration. Je pense qu'il est important de le signaler, car vous devez en être conscient lorsque vous vous connectez à des systèmes que vous ne contrôlez pas. Ceux-ci ne mettront pas réellement un mot de passe en texte brut dans /etc/passwd
ou /etc/shadow
, il ira dans un autre fichier. Notez que je ne les ai pas testés, car je préfère ne pas avoir mon mot de passe en texte brut.
-
Modifier
/etc/pam.d/common-password
(pour attraper le mot de passe changé) ou/etc/pam.d/common-auth
(pour attraper à la connexion) et ajoutez… pam_exec expose_authtok log=/root/passwords /bin/cat
-
Modifiez les deux et passez de pam_unix à pam_userdb avec
crypt=none
. Alternativement, vous pouvez le mettre uniquement dans le mot de passe commun (en laissant également pam_unix) pour simplement enregistrer les mots de passe lorsqu'ils sont modifiés. -
Vous pouvez supprimer le
shadow
(ainsi que toutes les options de hachage fortes) de pam_unix pour désactiver le fichier fantôme et revenir aux mots de passe cryptés traditionnels. Pas de texte brut, mais John l'Éventreur s'en chargera pour vous.
Pour plus de détails, consultez le Guide d'administration du système PAM.
Vous pouvez également modifier le code source de PAM ou écrire votre propre module. Vous n'auriez qu'à compiler PAM (ou votre module), rien d'autre.