Por que `reboot` e` poweroff` funcionam sem privilégios de superusuário no Ubuntu 16.04?

10

Existem muitas perguntas sobre o porquê shutdowne rebootexigem privilégios de root. Também existem muitas boas respostas disponíveis.

Mas há algo que eu não entendo : se ser capaz de reiniciar ou desligar sem privilégios de root em um sistema multiusuário é uma péssima idéia ... então por que isso é possível no Ubuntu 16.04?

Quando digito poweroffou rebootem um terminal e bato Enter, ele realmente desliga / reinicia!

Tudo bem para mim quando poweroffe rebootnão requer privilégios de root ... mas por que eles suspendprecisam de privilégios de root? Quando digito suspendum terminal e bato Enter, ele não é suspenso, mas fica preso ... e quando eu corro pm-suspend, exige sudo.

Severus Tux
fonte
Isso também deve ser possível em versões mais antigas, se você o configurar ( askubuntu.com/a/570969/158442 , observe as ações para várias sessões). O Systemd faz isso por padrão. Também visto no Arch Linux.
muru 20/05

Respostas:

3

Para mim, poweroffnem rebootprecisa de uma senha no Ubuntu 16.04.

No entanto, para que isso ocorra, eu tive que criar uma conta de usuário chamada "foo", por exemplo, e depois ssh para localhost como esse usuário ou como eu. Quando faço isso, preciso me autenticar. Parece reconhecer que outro usuário está logado.

Por exemplo, recebo esta mensagem:

User foo is logged in on sshd.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.

Presumivelmente, é "inteligente" o suficiente para perceber quando há outro usuário conectado.

(Concordo com você que seria bom sempre se autenticar como root. Às vezes, nenhum outro usuário está conectado, mas um processo importante está sendo executado em segundo plano, executando algum tipo de cálculo.)

Edit: Apenas tentei a mim mesmo. Se eu estiver logado como foo, preciso me autenticar (quem está no grupo sudo). Se eu reiniciar como eu com o foo ainda conectado, tenho que digitar systemctl reboot -isem uma senha. Presumo que a diferença é que o sistema sabe que estou no grupo sudo.

Edição 2: Conforme observado por Severus Tux, systemctl suspend -icomportou-se de maneira semelhante à systemctl reboot -iedição anterior.

Raio
fonte
Ah .. eu não tinha tentado isso. BTW o comando de suspensão funciona em sua máquina? Eu preciso ter certeza de que é um bug
Severo Tux
Se eu ssh no host local e suspiro, não tenho êxito. Eu recebo "-bash: suspend: não pode suspender um shell de login".
Ray
Se eu abrir uma janela e tentar "suspender", a janela do terminal congela. :-) Não é um bom sinal ... acho que não tem relação. De qualquer forma, obrigado por perguntar! Eu nunca pensei em me tentar, mas sua pergunta me deixou curiosa. Eu ainda tenho o hábito de reiniciar com o sudo ... não percebi essa mudança sutil.
Ray
Obrigado. Como você disse sobre a reinicialização, "systemctl suspend -i" também funciona bem. considerar acrescentando que a sua resposta
Severo Tux
Está bem! Eu provavelmente deveria ter adicionado tudo isso com uma mensagem, mas cada vez que eu tentava algo, ele causou um reboot, então eu tive que salvar o que eu estava postando ...
Ray