Todos os produtos
Search
Central de documentação

:Troubleshoot PAM-related logon failures on Linux instances

Última atualização: Sep 18, 2026

Descrição do problema

Configurações incorretas do PAM ou arquivos de módulo ausentes em uma instância Linux podem impedir o logon. Verifique o arquivo /var/log/secure para identificar as seguintes mensagens de erro:

  • requirement "uid >= 1000" not met by user "xxxx"

  • user xxxx (0) has 5 failed attempts, failed attempts threshold is 3

  • Refused user xxxx for service sshd

  • PAM unable to dlopen(/usr/lib64/security/pam_lastlog.so): /usr/lib64/security/pam_lastlog.so: cannot open shared object file: No such file or directory

Solução

Importante

Para modificar os arquivos de configuração do PAM, faça logon na instância com uma conta administrativa (como root ou um usuário com privilégios sudo).

Identificação do problema

  1. Faça logon na instância ECS via VNC como administrador.

    1. Acesse a página ECS console - Instances. Selecione a região e o grupo de recursos.

    2. Na página de detalhes da instância, clique em Connect e selecione VNC. Insira o nome de usuário e a senha para fazer logon.

  2. Verifique os logs de autenticação em busca das principais mensagens de erro.

    • Conta bloqueada por tentativas malsucedidas: Se o log contiver Maximum amount of failed attempts was reached, a conta foi bloqueada após múltiplas tentativas de logon malsucedidas. Desbloqueie a conta.

      sudo grep -i "Maximum amount of failed attempts" /var/log/secure
    • Logon do usuário restrito: Caso o log apresente requirement "uid >= 1000" not met by user, uma regra impede o logon de usuários com UID inferior a 1000. Remova a restrição de UID.

      sudo grep -i "not met by user" /var/log/secure
    • Usuário na lista de bloqueios: A presença de Refused user no log indica que uma lista de permissões ou de bloqueios controla o acesso. O usuário está na lista de bloqueios ou ausente da lista de permissões. Modifique a lista de permissões ou de bloqueios.

      sudo grep -i "Refused user" /var/log/secure
    • Arquivo de módulo PAM ausente: Quando o log exibe PAM unable to dlopen e No such file or directory, um arquivo de módulo PAM referenciado pelo sistema (como pam_lastlog.so) está ausente. Restaure o módulo PAM ausente.

      sudo grep -i "unable to dlopen" /var/log/secure

Desbloquear a conta

  1. Verifique o número de tentativas de logon malsucedidas. Substitua <username> pelo nome de usuário afetado.

    sudo pam_tally2 -u <username>

    Se a contagem de tentativas malsucedidas for maior que 0, a conta está bloqueada.

  2. Desbloqueie a conta.

    sudo pam_tally2 -u <username> -r
  3. (Opcional) Desative permanentemente a política de bloqueio.

    Edite o arquivo /etc/pam.d/system-auth e comente a regra que contém pam_tally2.so.

    sudo vim /etc/pam.d/system-auth

    Essa regra bloqueia contas comuns e root após três tentativas consecutivas de senha incorreta, com desbloqueio automático após 50 segundos.

    auth required pam_tally2.so deny=3 unlock_time=50  
    Este exemplo utiliza o módulo pam_tally2 . O módulo real pode variar conforme a versão do PAM. Consulte o Linux-PAM System Administrators' Guide.
  4. Faça logon na instância novamente para verificar se o acesso funciona.

Remover a restrição de UID

  1. Localize o arquivo de configuração.

    Encontre arquivos que contenham pam_succeed_if, como /etc/pam.d/sshd, /etc/pam.d/login ou /etc/pam.d/system-auth.

    sudo grep -r "pam_succeed_if" /etc/pam.d/
  2. Modifique a configuração.

    sudo vim /etc/pam.d/sshd

    Comente a linha que contém auth required pam_succeed_if.so uid >= 1000 adicionando # no início.

    # auth required pam_succeed_if.so uid >= 1000
  3. Faça logon na instância novamente para verificar se o acesso funciona.

Modificar a lista de permissões ou de bloqueios

  1. Localize o arquivo de configuração.

    Procure arquivos que incluam pam_listfile, como /etc/pam.d/sshd, /etc/pam.d/login ou /etc/pam.d/system-auth.

    sudo grep -r "pam_listfile" /etc/pam.d/
  2. Examine a configuração.

    sudo vim /etc/pam.d/sshd

    O parâmetro sense indica uma lista de permissões (sense=allow) ou uma lista de bloqueios (sense=deny). Observe o caminho do arquivo no parâmetro file=, como /etc/ssh/whitelist ou /etc/ssh/blacklist.

    # A whitelist is configured. Only users in the whitelist are allowed to log on.
    auth required pam_listfile.so item=user sense=allow file=/etc/ssh/whitelist onerr=fail
    
    # A blacklist is configured. Users in the blacklist are prohibited from logging on.
    auth required pam_listfile.so item=user sense=deny  file=/etc/ssh/blacklist onerr=fail
  3. Modifique o arquivo de lista.

    • Para lista de permissões: adicione o nome de usuário em uma nova linha. Salve e saia.

      sudo vim /etc/ssh/whitelist
    • Para lista de bloqueios: exclua a linha que contém o nome de usuário alvo. Salve e saia.

      sudo vim /etc/ssh/blacklist
  4. Faça logon na instância novamente para verificar se o acesso funciona.

Restaurar um módulo PAM ausente

  1. Identifique o pacote proprietário do módulo ausente.

    O relatório de diagnóstico ou o log do sistema especifica o caminho do módulo ausente, por exemplo /usr/lib64/security/pam_lastlog.so. Execute o comando a seguir para identificar o pacote proprietário do arquivo. O comando rpm -qf consulta o banco de dados RPM e funciona mesmo se o arquivo já estiver ausente.

    rpm -qf /usr/lib64/security/pam_lastlog.so

    A saída de exemplo a seguir indica que o módulo pertence ao pacote pam.

    pam-1.3.1-39.1.al8.x86_64

    Também é possível executar dnf provides "*/pam_lastlog.so" para identificar o pacote proprietário.

  2. Reinstale o pacote para restaurar o arquivo de módulo ausente.

    Substitua pam pelo nome do pacote identificado na etapa anterior.

    sudo dnf reinstall pam -y

    Em sistemas que usam yum como gerenciador de pacotes, como o CentOS 7, substitua dnf por yum no comando anterior.

  3. Verifique se o módulo foi restaurado.

    ls -l /usr/lib64/security/pam_lastlog.so

    Se o arquivo do módulo existir, a restauração estará concluída.

  4. Faça logon na instância novamente para verificar se o acesso funciona.

Nota

Após a restauração, os diagnósticos de integridade da instância ainda podem relatar este problema com base nos logs de erro históricos gerados anteriormente. Aguarde alguns instantes e execute os diagnósticos novamente.