Supostamente, se você estiver logado como não-root e write sudo passwd -d root
, o login root será desabilitado, o que significa que você terá que fazer login como outro usuário e usar su
para mudar para root (ou apenas ficar com sudo
).
No entanto, quando tentei fazer isso, ele não desativou o login de root, apenas removeu a exigência de senha, essencialmente fazendo com que qualquer pessoa pudesse acessar o root no meu computador (muito mal).
O livro que me disse para usar sudo passwd -d root
foi escrito para CentOS 6.5. Minha versão é 7.2. Esta é uma mudança recente ou entendi algo errado?
Responder1
Não faz sentido restringir o login root no PC local, porque o usuário local sempre pode carregar o sistema no modo de usuário único com privilégios de root. Se você precisar bloquear o login root via ssh - isso pode ser feito em /etc/ssh/sshd_config adicionando PermitRootLogin no
Responder2
A maneira mais fácil de impedir o login do root é corromper a string criptografada que representa a senha do root no formato /etc/shadow
. As linhas normais /etc/shadow
ficam assim:
- Nome de usuário: É o seu nome de login.
- Senha: É sua senha criptografada. A senha deve ter no mínimo 6 a 8 caracteres, incluindo caracteres/dígitos especiais e muito mais.
- Última alteração de senha (última alteração): dias desde 1º de janeiro de 1970 em que a senha foi alterada pela última vez
- Mínimo: O número mínimo de dias necessários entre alterações de senha, ou seja, o número de dias restantes antes que o usuário possa alterar sua senha
- Máximo: O número máximo de dias que a senha é válida (após o usuário ser forçado a alterar sua senha)
- Avisar: O número de dias antes de a senha expirar em que o usuário é avisado de que sua senha deve ser alterada
- Inativo: o número de dias após a expiração da senha em que a conta é desativada
- Expira: dias desde 1º de janeiro de 1970 em que a conta foi desativada, ou seja, uma data absoluta especificando quando o login não poderá mais ser usado.
(Citado daqui) Você pode adicionar um ! (ponto de exclamação) que não será gerado a partir de funções hash na seção de senha na linha in do root /etc/shadow
, o que impede o login usando todas as senhas possíveis. Agora que você eliminou o método de login com senha para root, ninguém pode fazer login do nada como rootusando uma senha. (Outras maneiras de fazer login podem existir)
Uma maneira mais segura de fazer isso é através do usermod
utilitário: sudo usermod -L root Isso evita que você estrague tudo. Para usos detalhados usermod
, consulte usermod(8)
.
Quando você quiser fazer login com root, remova-o! e tudo ficará bem.
Responder3
Embora a resposta anterior tenha sido baseada em meus comentários sobre como bloquear o root usermod -L
ou passwd -l
definir efetivamente o campo de senha como!, eles não explicam sua situação.
Tenho pensado por que o livro diz que excluir passwd -d
impede o acesso. Ao definir a senha em branco, com -d, você impedirá que todos os usuários não root acessem a conta rootremotamente, porque usuários não root não podem migrar para outras contas que não tenham senha. Como o ssh hoje em dia também bloqueia o root por padrão, a conta root será efetivamente bloqueada da perspectiva de usuários remotos e não-root. (por exemplo, a única maneira de funcionar como root será sudo)
No entanto, o livro deve mencionar que qualquer usuário no console local pode fazer login como root sem senha. Embora hoje em dia a maioria dos consoles esteja fora do alcance dos usuários normais no console de ambientes virtuais, é sempre sensato ter uma forma de controlar a senha do root.
Uma política mais sensata é bloquear o root com usermod -L
ou passwd -L
, mas não antes de estabelecer uma política de usuário sensata e testá-la.
Uma alternativa é estabelecer uma senha de root muito segura que seja alterada regularmente e que ninguém saiba (gerando-a aleatoriamente makepasswd
e mantendo-a em um envelope, por exemplo) para casos de emergência (inicialização única, por exemplo, ou quando alguém bagunçar por engano o sudo configuração. Então, de fato, a senha do root pode ser útil. Dessa forma, o trabalho privilegiado via sudo será imposto. Caso contrário, com o root bloqueado, a alternativa é inicializar através de um CD ou caneta, seja virtual ou real.