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.