Como o Ubuntu desabilita a conta root por padrão, por que não desativar também o acesso ao shell raiz?


12

Os padrões atuais para a conta raiz em /etc/passwdé root:x:0:0:root:/root:/bin/bash.

Por que não configurá-lo root:x:0:0:root:/root:/usr/sbin/nologin?


7
Para que você possa fazer sudo -i?
AlexP

12
"desativa a conta root" é um pouco de uma descrição solta: o que ele realmente desabilita é autenticação baseada em senha da conta root
steeldriver

1
@ AlexP, na verdade, eu apenas testei, o sudo -i não funciona com o conjunto de raiz em / usr / sbin / nologin.
loongyh

Respostas:


19

Se fosse esse o caso, você só seria capaz de executar comandos com sudoum de cada vez, mas não conseguiria iniciar um shell raiz. Um shell raiz é conveniente em muitos casos, por exemplo, se você planeja executar vários comandos como root em uma linha.

Especificamente, você não pode executar sudo -i, como AlexP observou. De man sudo:

-i, --login    Run the shell specified by the target user's password database entry as a login shell.

7
Não sudo /bin/bashfunciona para fazer isso?
Federico Poloni

5
@FedericoPoloni que seria mais parecido com o que sudo -seu penso (um shell raiz, mas não um shell de login root ). É um bom ponto embora - e na verdade sudo -sparece funcionar mesmo quando shell de root é/usr/sbin/nologin
steeldriver

1
Você pode desativar -i, -s, /bin/bash, e assim por diante por apenas permitindo uma lista branca de comandos, consulte a documentação para o arquivo sudoers. Isso é tão refinado, que é possível, por exemplo, permitir que os usuários executem /etc/init.d/someservice restartcomo root sem permitir que eles executem /etc/init.d/someservice stop. Mas o padrão do ubuntu é apenas definir uma senha roote permitir que os usuários administradores façam tudo com o sudo. Provavelmente, a justificativa é a) mais de um usuário administrador eb) O usuário administrador não precisa se lembrar de uma segunda senha para a conta raiz.
allo

8

Além da resposta sudo de Alberto Santini, há outra (muito melhor) resposta. Se o shell do root estiver definido como algo que não é um shell, a inicialização de um único usuário não funcionará. Há recuperação suloginpara itens como shell não existente ou shell completamente quebrado, mas não funcionará se o shell parecer um shell válido, mas não for realmente um shell.

Você ainda pode sudoobter diretamente um shell especificando-o para sudoque ele não seja uma boa proteção.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.