sudo bloqueado no Linux: como identificar e desbloquear o usuário

Usuário com a senha certa e o sudo dizendo que está errada? Pode ser bloqueio por tentativas. Como confirmar no log e desbloquear com pam_tally2 ou faillock, dependendo da versão.

Boa noite pessoal, tudo bem?

O suporte de uma ferramenta que roda em um servidor que eu administrava entrou em contato comigo: o usuário deles não conseguia mais executar comandos com sudo. Aparecia a mensagem como se a senha estivesse errada, mas a mesma senha funcionava normalmente no login do servidor.

Investigando

Para analisar, pedi para o administrador da ferramenta tentar de novo o sudo su - enquanto eu acompanhava o log de autenticação:

# Red Hat e derivados
tail -f /var/log/secure

# Debian e Ubuntu
tail -f /var/log/auth.log

# ou, em qualquer distribuição com systemd
journalctl -f _COMM=sudo

No log apareceu o erro da senha e, junto, a contagem de tentativas negadas. Em algum momento o usuário tinha sido bloqueado, ou porque alguém realmente errou a senha várias vezes, ou por algum script ou sessão tentando autenticar repetidamente.

No meu caso, os servidores tinham hardening de segurança aplicado, e um dos itens era justamente bloquear o usuário depois de algumas tentativas erradas. Quem faz isso é o PAM, configurado em /etc/pam.d/.

💡 O detalhe que confunde: o bloqueio é por contagem de falhas. Depois de bloqueado, até a senha certa é recusada, e a mensagem continua parecendo "senha incorreta". Por isso o log é o primeiro lugar para olhar.

Desbloqueando

O comando depende do módulo PAM que o servidor usa. Na época, era o pam_tally:

# servidores antigos (RHEL 5 e 6)
/sbin/pam_tally --user UsuarioBloqueado --reset

# RHEL 6 e 7 com pam_tally2
pam_tally2 --user UsuarioBloqueado          # mostra quantas falhas
pam_tally2 --user UsuarioBloqueado --reset  # zera e desbloqueia

Nas versões atuais (RHEL 8, 9 e 10, Rocky, Alma e também Ubuntu e Debian recentes), o pam_tally2 não existe mais. Quem faz esse papel é o pam_faillock:

# ver as falhas registradas
faillock --user UsuarioBloqueado

# desbloquear
faillock --user UsuarioBloqueado --reset

Pronto! Pode pedir para o usuário testar de novo que vai funcionar.

Onde ajustar a regra

Nas versões com faillock, a política fica em /etc/security/faillock.conf:

# quantas falhas até bloquear
deny = 5

# por quanto tempo fica bloqueado, em segundos (0 = só desbloqueia manualmente)
unlock_time = 900

# janela de tempo em que as falhas são contadas
fail_interval = 900
⚠️ Antes de afrouxar a regra, descubra de onde vieram as falhas. Bloqueio que se repete costuma ser um script, um agendamento ou uma ferramenta de monitoração usando uma senha antiga. Se for isso, zerar o contador só adia o próximo bloqueio.
💡 Dica: para usuários de serviço e ferramentas, prefira liberar no sudoers só os comandos necessários, e com chave SSH em vez de senha. Menos senha digitada, menos bloqueio, e o log fica muito mais claro.

Considerações Finais

"A senha está certa, mas o sudo não aceita" quase sempre tem uma explicação no log. Primeiro veja o que o PAM está registrando, depois desbloqueie com o comando da sua versão e, por último, descubra quem estava errando a senha.

Abraços e até a próxima.

:wq!

Post publicado originalmente em janeiro de 2016 e atualizado em novembro de 2026.

Comentários