Lorsque vous utilisez la commande passwd pour modifier le mot de passe d'une instance ECS Linux, les erreurs passwd: Module is unknown et passwd: password unchanged peuvent s'afficher. Ces erreurs indiquent généralement un problème de configuration des modules d'authentification enfichables (PAM), comme un module PAM manquant ou mal configuré. PAM est un framework que les systèmes Linux utilisent pour gérer l'authentification des utilisateurs.
Symptômes
La commande passwd échoue et renvoie le message suivant :
passwd: Module is unknown
passwd: password unchanged
La tentative de réinitialisation en ligne du mot de passe de l'instance à l'aide de Cloud Assistant échoue et renvoie le message suivant :
Key pair [t-zjk5191zbypjytc] has been removed
chpasswd: (user root) pam_chauthtok() failed, error:
Module is unknown
chpasswd: (line 1, user root) password not changed
Password reset failed.
Causes possibles
Module PAM non installé ou manquant : Un module PAM requis, tel que
pam_unix.sooupam_pwquality.so, est absent, supprimé ou corrompu.Fichier de configuration PAM incorrect : Un fichier de configuration PAM situé dans le répertoire
/etc/pam.d/, tel quecommon-passwordousystem-auth, fait référence à un module inexistant ou contient un chemin de module ou des paramètres incorrects.Configuration incorrecte de la politique de mot de passe : Le fichier
/etc/security/pwquality.confest mal configuré, ce qui empêche le modulepam_pwquality.sode fonctionner correctement.
Solution
Étape 1 : Vérifiez pam_unix.so
-
Connectez-vous à votre instance Linux.
Pour plus d'informations, consultez la rubrique Connexion à une instance Linux à l'aide de Workbench.
-
Vérifiez si le module
pam_unix.soexiste :sudo find / -name "pam_unix.so"RemarqueSi
pam_unix.soexiste, passez à l'étape Étape 2 : Vérifiez la configuration de pam_pwquality.so.Si
pam_unix.son'existe pas, son package parent peut être manquant ou les fichiers de bibliothèque système peuvent être corrompus. Réinstallez le package PAM. Le modulepam_unix.soest un module PAM principal qui gère l'authentification de base des utilisateurs et la gestion des mots de passe.
-
Réinstallez le package PAM requis.
-
Ubuntu/Debian
sudo apt-get update sudo apt-get install --reinstall libpam-modules -
CentOS/RHEL/Alibaba Cloud Linux
sudo yum reinstall pam
-
-
Exécutez à nouveau la commande suivante pour vérifier que
pam_unix.soexiste.sudo find / -name "pam_unix.so"
Étape 2 : Vérifiez la configuration de pam_pwquality.so
Le module pam_pwquality.so permet de renforcer les contrôles de complexité des mots de passe, tels que la longueur minimale et les types de caractères. Si pam_pwquality.so est activé sur le système, les utilisateurs doivent respecter les règles de complexité définies lors du changement de leur mot de passe.
-
Consultez le journal système pour rechercher des messages d'erreur liés à
pam_pwquality.so, tels queModule is unknownoupam_chauthtok() failed.-
Ubuntu/Debian :
sudo tail -f /var/log/auth.log -
CentOS/RHEL/Alibaba Cloud Linux :
sudo tail -f /var/log/secureRemarquePar exemple, le message d'erreur suivant peut s'afficher :
PAM unable to dlopen(pam_puquality.so): /lib/security/pam_puquality.so: cannot open shared object file: No such file or directory PAM adding faulty module: pam_puquality.soLe journal indique que le système n'a pas pu charger le module
pam_pwquality.so. Cela peut être dû au fait que le modulepam_pwquality.son'est pas installé ou que le chemin d'installation est incorrect.
-
-
Exécutez la commande suivante pour vérifier si
pam_pwquality.soest installé.sudo find / -name "pam_pwquality.so"Si la sortie ressemble à ce qui suit, le module est installé.
/usr/lib/x86_64-linux-gnu/security/pam_pwquality.so -
-
Étape 3 : Vérifiez la correction
Essayez de changer à nouveau le mot de passe pour vérifier la correction.
passwd