O guardião do UID 0
Voltar para blog

O guardião do UID 0

07/06/2026 · 2 min · Infraestrutura

O caminho do login privilegiado#

Habilitar o login de root via senha é frequentemente desencorajado em ambientes de produção expostos à internet, mas em arquiteturas de gerenciamento out-of-band, redes isoladas de manutenção ou durante processos de bootstrapping de infraestrutura, entender o fluxo de execução é vital para o troubleshooting de baixo nível.

1. A configuração de superfície: sshd_config#

Para permitir o login de root com senha, altera-se o arquivo /etc/ssh/sshd_config. Os parâmetros críticos são:

# Permite explicitamente que o UID 0 autentique
PermitRootLogin yes

# Habilita o subsistema de autenticação por senha (interação keyboard-interactive)
PasswordAuthentication yes

O "porquê" por trás dos comandos:#

O valor padrão do OpenSSH moderno é prohibit-password. Quando definido assim, o daemon permite que o root logue apenas via chaves públicas. Se você tentar enviar uma senha, o sshd simplesmente interrompe o fluxo de desafio de senha para o UID 0, mesmo que a senha fornecida esteja correta no /etc/shadow.

Comportamento esperado: Ao executar systemctl reload sshd, o processo pai (listener) recebe um sinal SIGHUP, relê o arquivo de configuração e atualiza sua estrutura de dados interna (ServerOptions).

3. A camada PAM (pluggable authentication modules)#

Mesmo com o sshd_config configurado para yes, a autenticação pode ser negada pela stack PAM do sistema operacional.

Arquivo Crítico: /etc/pam.d/sshd

O papel do pam_unix.so e pam_rootok.so#

O sshd chama a função pam_authenticate(). Se o seu sistema tiver a flag nullok desabilitada ou se houver restrições no arquivo /etc/securetty, o PAM pode bloquear o login.

5. Cenários de borda (edge cases)#

Cenário a: o bloqueio por "match block"#

No final do sshd_config, pode haver um bloco Match.

Match Address 192.168.1.0/24
PermitRootLogin no

Como descartar: Use sshd -T | grep -i permitrootlogin. Este comando imprime a configuração efetiva que o servidor está usando após processar todos os blocos Match.

Cenário b: SELinux ou AppArmor#

Em distribuições como RHEL ou Debian com AppArmor, o contexto do arquivo /etc/ssh/sshd_config ou do binário /usr/sbin/sshd pode impedir a execução de certas ações.

Cenário c: conta de root "locked"#

Se o campo de senha no /etc/shadow começar com ! ou *, o PAM rejeitará a senha independentemente do que o SSH diga.

Este artigo foi útil?

Deixe uma reação rápida para apoiar o conteúdo:

CC BY-NC

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.

0 comentários