/etc/securetty
é consultado pelo módulo pam_securetty para decidir a partir de qual raiz dos terminais virtuais (ttyS) é permitido fazer login. No passado, /etc/securetty
era consultado por programas como o login diretamente, mas agora o PAM lida com isso. Portanto, as alterações em /etc/securetty
afetarão qualquer coisa usando o PAM com um arquivo de configuração que use pam_securetty.so. Portanto, apenas o programa de login é afetado por padrão. /etc/pam.d/login
é usado para logins locais e /etc/pam.d/remote
é usado para logins remotos (como telnet).
Os principais tipos de entrada e seus efeitos são os seguintes:
- Se
/etc/securetty
não existir, o root poderá fazer login a partir de qualquer tty
- Se
/etc/securetty
existir e estiver vazio, o acesso root será restrito ao modo de usuário único ou programas que não são restritos por pam_securetty (por exemplo, su, sudo, ssh, scp, sftp)
- se você estiver usando devfs (um sistema de arquivos obsoleto para manipular / dev), adicionar entradas no formato vc / [0-9] * permitirá o login raiz a partir do número do console virtual fornecido
- se você estiver usando o udev (para gerenciamento dinâmico de dispositivos e substituição do devfs), adicionar entradas no formato tty [0-9] * permitirá o login raiz a partir do número do console virtual fornecido
- listar o console no securetty, normalmente não tem efeito, já que / dev / console aponta para o console atual e normalmente é usado apenas como o nome do arquivo tty no modo de usuário único, o que não é afetado pelo
/etc/securetty
- adicionar entradas como pts / [0-9] * permitirá que programas que usam pseudo-terminais (pty) e pam_securetty façam login no root, assumindo que o pty alocado é um dos listados; normalmente é uma boa ideia não incluir essas entradas porque é um risco à segurança; permitiria, por exemplo, que alguém fizesse login no root via telenet, que envia senhas em texto sem formatação (observe que pts / [0-9] * é o formato para o udev usado no RHEL 5.5; será diferente se estiver usando o devfs ou alguma outra forma de gerenciamento de dispositivos)
Para o modo de usuário único, /etc/securetty
não é consultado porque o sulogin é usado em vez do login. Veja a página de manual sulogin para mais informações. Além disso, você pode alterar o programa de login usado /etc/inittab
para cada nível de execução.
Observe que você não deve usar /etc/securetty
para controlar logins raiz via ssh. Para fazer isso, altere o valor de PermitRootLogin em /etc/ssh/sshd_config
. Por padrão, /etc/pam.d/sshd
não está configurado para consultar pam_securetty (e, portanto /etc/securetty
). Você pode adicionar uma linha para fazer isso, mas o ssh não define o tty real até algum tempo após o estágio de autenticação, para que não funcione conforme o esperado. Durante os estágios de autenticação e conta - pelo menos no openssh - o tty (PAM_TTY) é codificado para "ssh".
A resposta acima é baseada no RHEL 5.5. Muito disso será referente às distribuições atuais de outros sistemas * nix, mas existem diferenças, algumas das quais observei, mas não todas.
Eu mesmo respondi isso porque as outras respostas estavam incompletas e / ou imprecisas. Muitos outros fóruns, blogs etc. on-line também contêm informações imprecisas e incompletas neste tópico, por isso fiz uma extensa pesquisa e teste para tentar obter os detalhes corretos. Se alguma coisa que eu disse estiver errada, informe-me.
Fontes: