Por que o sudo é necessário para reinicializar no terminal, mas não na GUI?


10

Quando ligo a máquina e faço login na minha conta, posso fazer o que quiser e até mesmo desligar a máquina ou reiniciar.

Mas se eu abrir o terminal e tentar executar o comando rebootou shutdownentão precisar de acesso root. Porque isto é assim?

Posso pensar em algumas razões pelas quais esse tipo de comportamento, como para você, pode ser desejável, sshmas não tenho certeza sobre isso, ou posso estar perdendo algum ponto.


Check-up dbuse seu ambiente gráfico (por exemplo, KDE ou gnome).
— Hennes

Eu acho que você pode fazer isso em todos gui, eu só quero saber por que esse recurso de design está lá.
— Aman Deep Gautam

Respostas:


6

É um recurso de segurança.

Ao usar a GUI, você está (normalmente) sentado em frente ao computador em que está trabalhando. No entanto, ao usar um terminal, você pode estar fisicamente em uma máquina e remotamente usando outra. Você pode ter muitas janelas de terminal abertas para muitas máquinas diferentes. E se você acidentalmente digitar reboot no errado? Essa ação pode variar de uma inconveniência a um desastre completo.

Ao usar o sudo, você usa uma senha. Se você digitar a senha errada, você receberá um erro e, com sorte, perceberá que está no terminal errado. É por isso que é recomendável ter uma senha de root diferente em todos os servidores.


Eu também pensei o mesmo, mas só queria ter certeza de que eu não estou perdendo alguma coisa .. :)
— Aman Deep Gautam

1
Eu vi mais de alguns administradores Unix removerem o nome do computador de seus prompts do shell porque ele ocupou muito espaço e depois se arrependeu dessa decisão.
— Keltari

Note que não é exatamente uma característica de segurança no sentido aqui entendido. Quando o Unix começou, você só tem consoles (sem GUI). E apenas o usuário root tinha permissão para desligar / reiniciar. Ainda é assim. A GUI ignora o uso do bit + s nos arquivos. Embora você possa remover aqueles em seu menu usando estes comandos: askubuntu.com/questions/53308/…
— Alexis Wilke

Acabei de ver minha reivindicação de VM do CentOS "reboot" não era um comando quando eu era su-ed como root. Eu digitei sudo rebootlá e funcionou. Quando eu diretamente SSH em como root, rebootfunciona bem. É estranho.
— Steven Lu

@StevenLu Verifique seus caminhos. ("echo $ {PATH}") Pode ser que um diretório "sbin" não esteja em seu caminho em alguns casos. Nesse caso, a estranheza pode não estar com o comando reboot. Usando "que reboot" também pode ajudar a explicar.
— TOOGAM

0

Normalmente, você pode reinicializar a partir do terminal pressionando Ctrl + Alt + Del. Isso não funciona remotamente. (A reinicialização remotamente da GUI sem privilégios também não funciona.)

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.