Configurando Login Sem Senha e Login Automático para o Usuário Root no Linux

Login Sem Senha para o Usuário Root

Para configurar o ambiente Linux de forma que o usuário root possa efetuar login sem a necessidade de uma senha, as configurações do PAM (Pluggable Authentication Modules) precisam ser ajustadas. Esta configuração destina-se principalmente a cenários controlados, como consoles de manutenção ou sistemas embarcados, devido às suas implicações de segurança.

1. Criação de Backup do Módulo PAM

É uma prática essencial criar uma cópia de segurança do arquivo de configuração do PAM antes de qualquer alteração, permitindo a restauração em caso de erros:

sudo cp /etc/pam.d/login /etc/pam.d/login.orig

2. Ajuste da Configuração PAM

Edite o arquivo de configuração /etc/pam.d/login, responsável pela autenticação de logins via console:

sudo vi /etc/pam.d/login

Adicione ou modifique as linhas a seguir no início do arquivo. A chave aqui é a inclusão de pam_succeed_if.so, que permite que o login seja bem-sucedido para o usuário root sem prosseguir para a verificação de senha padrão com pam_unix.so.

auth       [success=ok new_authtok_reqd=ok ignore=ignore default=bad] pam_securetty.so
auth       sufficient   pam_succeed_if.so user = root quiet
auth       required     pam_unix.so

A linha auth sufficient pam_succeed_if.so user = root quiet instrui o PAM a considerar a autenticação bem-sucedida se o usuário for root, ignorando módulos de autenticação subsequentes para este caso específico.

3. Verificação do Arquivo /etc/securetty

O arquivo /etc/securetty lista os terminais (TTYs) dos quais o usuário root tem permissão para fazer login diretamente. Para que o login sem senha funcione corretamente, o terminal desejado deve estar presente neste arquivo.

sudo vi /etc/securetty

Garanta que o arquivo contenha os TTYs onde o login sem senha para root é permitido, como:

tty1
tty2
tty3
tty4
tty5
tty6
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
console
serial/ttyS0

4. Reinicialização do Sistema

Após aplicar as modificações, uma reinicialização do sistema é necessária para que as novas regras do PAM entrem em vigor:

sudo reboot

Com estas configurações, o usuário root poderá fazer login nos terminais especificados sem fornecer uma senha. Outros usuários continuarão a necessitar de autenticação.

Avisos de Segurança

  • Configurar login sem senha para o root representa um risco de segurança significativo. Esta prática deve ser empregada apenas em ambientes isolados, sistemas de desenvolvimento ou bancadas de teste onde o acesso físico e de rede é estritamente controlado.
  • Em caso de problemas ou para reverter a configuração, utilize a cópia de backup do PAM: ``` sudo cp /etc/pam.d/login.orig /etc/pam.d/login
    
    

Login Automático do Usuário Root no Console

Para configurar o sistema de forma que o usuário root efetue login automaticamente em um console específico (por exemplo, tty1) na inicialização do sistema, é necessário criar um override para o serviço systemd correspondente ao terminal.

1. Criação do Diretório de Override

Crie um diretório para armazenar a configuração personalizada para o serviço getty@tty1.service:

sudo mkdir -p /etc/systemd/system/getty@tty1.service.d

2. Configuração do Override para getty@tty1

Dentro do diretório recém-criado, crie o arquivo autologin.conf (ou override.conf, como preferir) e adicione as diretivas de configuração:

sudo vi /etc/systemd/system/getty@tty1.service.d/autologin.conf

Insira o seguinte conteúdo no arquivo:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM
Type=idle

A linha ExecStart= (vazia) é crucial; ela limpa a diretiva ExecStart original do serviço getty. A segunda linha ExecStart substitui o comando original pelo agetty configurado para login automático do usuário root no terminal correspondente (%I).

3. Recarga do Systemd e Reinício do Serviço

Para que as alterações sejam aplicadas, recarregue a configuração do systemd e reinicie o serviço getty@tty1.service:

sudo systemctl daemon-reload
sudo systemctl restart getty@tty1.service

4. Considerações sobre SELinux (Opcional)

Se o SELinux estiver ativo e em modo "enforcing", ele pode interferir no login automático. Para testar, você pode temporariamente desativá-lo ou colocá-lo em modo permissivo:

sudo setenforce 0

Para uma alteração persistente, edite o arquivo de configuração do SELinux:

sudo vi /etc/selinux/config

Altere a linha SELINUX=enforcing para:

SELINUX=permissive

Lembre-se de que desativar ou reduzir a segurança do SELinux também aumenta os riscos.

5. Reinicialização Completa

Após todas as modificações, reinicie o sistema para confirmar que o login automático está funcionando conforme o esperado:

sudo reboot

Ao reiniciar, o console tty1 deverá apresentar o prompt de comando do usuário root automaticamente.

Avisos de Segurança Importantes

  • Extremo Risco de Segurança: A configuração de login automático para o usuário root é uma medida de segurança extremamente perigosa. Ela remove completamente a proteção por senha para acesso ao sistema.
  • Esta funcionalidade deve ser utilizada apenas em ambientes muito controlados e seguros, como sistemas embarcados sem interação externa, ou em laboratórios de teste onde o acesso físico é monitorado e limitado.
  • Este método se aplica estritamente ao acesso via console local. Para acesso remoto (como SSH), as credenciais (senha ou chaves SSH) ainda serão exigidas, a menos que o serviço SSH seja configurado para aceitar chaves SSH sem passphrase, o que também é um risco.

Limitações de Conectividade Remota

É fundamental compreender que ambas as configurações – login sem senha e login automático – são aplicáveis apenas a sessões de console local (TTYs). Conexões remotas, como SSH, não serão afetadas por essas alterações. Para acesso SSH sem senha, é necessário configurar a autenticação por chave SSH, onde a chave pública é armazenada no servidor e a chave privada é usada pelo cliente.

Tags: Linux pam systemd autenticacao Segurança

Publicado em 6-27 22:04