¿Por qué funciona 'reiniciar' y 'apagar' sin privilegios de superusuario en Ubuntu 16.04?

10

Hay muchas preguntas sobre por qué shutdowny rebootrequieren privilegios de root. También hay muchas buenas respuestas disponibles.

Pero hay algo que no entiendo : si poder reiniciar o apagar sin privilegios de root en un sistema multiusuario es una muy mala idea ... entonces, ¿por qué es esto posible en Ubuntu 16.04?

Cuando escribo poweroffo rebooten una terminal y presiono Enter, ¡de hecho se apaga / reinicia!

Está bien para mí cuándo poweroffy rebootno requieren privilegios de root ... pero ¿por qué suspendnecesita privilegios de root? Cuando escribo suspenduna terminal y presiono Enter, no se suspende, en lugar de eso se atasca ... y cuando corro pm-suspend, lo requiere sudo.

Severus Tux
fuente
Esto también debería ser posible en versiones anteriores, si lo configura (hacerlo) ( askubuntu.com/a/570969/158442 , tenga en cuenta las acciones para varias sesiones). Sin embargo, Systemd hace esto por defecto. También visto en Arch Linux.
muru

Respuestas:

3

Para mí, ambos poweroffni rebootnecesitan una contraseña en Ubuntu 16.04.

Sin embargo, para que esto ocurra, tuve que crear una cuenta de usuario llamada "foo", por ejemplo, y luego ssh a localhost como ese usuario o como yo mismo. Cuando hago esto, necesito autenticarme. Parece reconocer que otro usuario ha iniciado sesión.

Por ejemplo, recibo este mensaje:

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'.

Presumiblemente, es lo suficientemente "inteligente" como para darse cuenta cuando de hecho hay otro usuario conectado.

(Estoy de acuerdo con usted en que sería bueno autenticarse siempre como root. A veces, ningún otro usuario está conectado, pero se está ejecutando un proceso importante en segundo plano que realiza algún tipo de cálculo).

Editar: solo lo intenté yo mismo. Si he iniciado sesión como foo, necesito autenticarme (quién está en el grupo sudo). Si reinicio como yo mismo con foo todavía conectado, tengo que escribir systemctl reboot -isin contraseña. Supongo que la diferencia es que el sistema sabe que estoy en el grupo sudo.

Edición 2: como señaló Severus Tux, se systemctl suspend -icomportó de manera similar a systemctl reboot -ila edición anterior.

Rayo
fuente
Ah ... no lo había intentado. Por cierto, ¿el comando de suspensión funciona en su máquina? Necesito asegurarme de que sea un error
Severus Tux
Si ssh a localhost y suspender, no tengo éxito. Me sale "-bash: suspender: no se puede suspender un shell de inicio de sesión".
Rayo
Si abro una ventana e intento "suspender", la ventana de terminal se congela. :-) No es una buena señal ... Creo que eso no está relacionado. De todos modos, gracias por preguntar! Nunca pensé en intentarlo, pero tu pregunta me hizo sentir curiosidad. Todavía tengo la costumbre de reiniciar con sudo ... no noté este cambio sutil.
Rayo
Gracias. Como dijiste sobre el reinicio, "systemctl suspend -i" también funciona bien. considere agregar eso a su respuesta
Severus Tux
¡Okay! Probablemente debería haberlo agregado todo con un mensaje, pero cada vez que intentaba algo, causaba un reinicio, así que tenía que guardar lo que estaba publicando ...
Ray