Ao usar o comando passwd para alterar a senha de uma instância ECS Linux, você pode receber os erros passwd: Module is unknown e passwd: password unchanged. Esses erros geralmente indicam um problema na configuração dos Pluggable Authentication Modules (PAM), como um módulo PAM ausente ou mal configurado. O PAM é um framework que os sistemas Linux usam para gerenciar a autenticação de usuários.
Sintomas
O comando passwd falha e exibe a seguinte mensagem:
passwd: Module is unknown
passwd: password unchanged
A tentativa de redefinir a senha da instância online usando o Cloud Assistant falha e exibe a seguinte mensagem:
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.
Possíveis causas
Módulo PAM não instalado ou ausente: Um módulo PAM necessário, como
pam_unix.sooupam_pwquality.so, está ausente, foi excluído ou está corrompido.Arquivo de configuração PAM incorreto: Um arquivo de configuração PAM no diretório
/etc/pam.d/, comocommon-passwordousystem-auth, referencia um módulo inexistente ou contém um caminho ou parâmetros incorretos.Configuração de política de senha incorreta: O arquivo
/etc/security/pwquality.confestá mal configurado, o que impede o funcionamento correto do módulopam_pwquality.so.
Solução
Etapa 1: Verifique o pam_unix.so
-
Conecte-se à sua instância Linux.
Para mais informações, consulte Fazer login em uma instância Linux usando o Workbench.
-
Verifique se o módulo
pam_unix.soexiste:sudo find / -name "pam_unix.so"NotaSe o
pam_unix.soexistir, prossiga para a Etapa 2: Verificar a configuração do pam_pwquality.so.Caso o
pam_unix.sonão exista, o pacote pai pode estar ausente ou os arquivos de biblioteca do sistema podem estar corrompidos. Reinstale o pacote PAM. O módulopam_unix.soé essencial para o PAM e gerencia a autenticação básica de usuários e senhas.
-
Reinstale o pacote PAM necessário.
-
Ubuntu/Debian
sudo apt-get update sudo apt-get install --reinstall libpam-modules -
CentOS/RHEL/Alibaba Cloud Linux
sudo yum reinstall pam
-
-
Execute o comando a seguir novamente para verificar se o
pam_unix.soexiste.sudo find / -name "pam_unix.so"
Etapa 2: Verifique a configuração do pam_pwquality.so
O módulo pam_pwquality.so aprimora as verificações de complexidade de senha, como comprimento mínimo e tipos de caracteres. Se o pam_pwquality.so estiver ativado no sistema, os usuários deverão atender às regras de complexidade definidas ao alterar suas senhas.
-
Verifique no log do sistema se há mensagens de erro relacionadas ao
pam_pwquality.so, comoModule is unknownoupam_chauthtok() failed.-
Ubuntu/Debian:
sudo tail -f /var/log/auth.log -
CentOS/RHEL/Alibaba Cloud Linux:
sudo tail -f /var/log/secureNotaPor exemplo, a seguinte mensagem de erro pode ser exibida:
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.soO log indica que o sistema falhou ao carregar o módulo
pam_pwquality.so. Isso pode ocorrer porque o módulopam_pwquality.sonão está instalado ou o caminho de instalação está incorreto.
-
-
Execute o comando a seguir para verificar se o
pam_pwquality.soestá instalado.sudo find / -name "pam_pwquality.so"Se a saída for semelhante à seguinte, o módulo está instalado.
/usr/lib/x86_64-linux-gnu/security/pam_pwquality.so -
-
Etapa 3: Verifique a correção
Tente alterar a senha novamente para validar a correção.
passwd