All links of one day
in a single page.
<Previous day - Next day>

rss_feedDaily RSS Feed
floral_left The Daily Shaarli floral_right
——————————— November 13, 2020 - Friday 13, November 2020 ———————————

Sur ma machine perso GNU/Linux Buster, j'ajoute un utilisateur :

$ sudo adduser toto
[sudo] Mot de passe de guigui : 
Ajout de l'utilisateur « toto » ...
Ajout du nouveau groupe « toto » (1002) ...
Ajout du nouvel utilisateur « toto » (1002) avec le groupe « toto » ...
Création du répertoire personnel « /home/toto »...
Copie des fichiers depuis « /etc/skel »...
Current password: 
New password: 
New password (again): 
Mot de passe inchangé
passwd: Erreur de manipulation du jeton d'authentification
passwd: password unchanged

Le comportement est identique après un su - root.

Depuis quand passwd demande l'ancien mot de passe quand on crée un compte ?! Depuis quand cette demande se fait-elle en anglais ?

Je crée un compte sans mot de passe (entrée, entrée, entrée, entrée, etc.) puis je tente de changer le mdp :

# passwd toto 
Current password: 
New password: 
New password (again): 
Aucun mot de passe fourni
passwd: Erreur de manipulation du jeton d'authentification
passwd: password unchanged

… … …

J'ai trouvé l'origine du problème avec de la chance : j'ai installé le module pam_script. Celui-ci modifie le fichier /etc/pam.d/common-password de la manière suivante :

- password        [success=1 default=ignore]      pam_unix.so obscure sha512
+ password        sufficient                      pam_script.so
+ password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512

C'est donc pam_script qui affiche « Current password » / « New password » / « New password (again) ». A priori, ce n'est pas un script lancé par pam_script mais bien pam_script lui-même qui affiche cela, car, en mettant mon /etc dans un dépôt git, je n'ai pas trouvé un quelconque script et l'installation de libpam-script ne modifie / n'ajoute pas d'autres fichiers dans /etc.

Du coup, si l'on répond uniquement avec entrée, on devrait passer au module suivant, pam_unix.so, non ? Oui.

Donc retrouver le comportement habituel ? Non. Car pam_unix est exécuté avec l'argument « use_authtok » qui lui ordonne de définir le nouveau mot de passe à la valeur fournie par un module précédent… Or, nous ne l'avons pas saisi. Le module pam_unix affiche donc « Aucun mot de passe fourni ». Puis le module pam_deny afffiche les deux dernières lignes.

Saisir un nouveau mot de passe sans saisir le mot de passe actuel change rien : la comparaison entre le mot de passe enregistré en base et celui saisi échouera, donc pam_unix échouera.

Solution ? Soit désinstaller libpam-script (je l'avais installé pour tester des choses). Soit commenter la ligne pam_script et virer les arguments « use_authtok try_first_pass » de pam_unix.

-