La pregunta que hace K.Chen es: ¿por qué necesito privilegios de sudo cuando lo hago desde CLI? Aunque no necesito esos privilegios cuando lo hago desde la GUI.
La primera parte de la respuesta es que las personas que diseñan entornos de escritorio, como Gnome, KDE, Xfce, Mate, Cinnamon, ... intentan simplificar el trabajo de sus usuarios, y configuran el apagado y el reinicio sin requerir credenciales de sudo. Esto, por cierto, implica que debe haber una secuencia de apagado que no implique el apagado del programa, que sí requiere privilegios de sudo (no hay forma de evitarlo).
No sé en detalle cómo lo hace cada DE, pero sé que hay una manera suave de desactivar, reiniciar / apagar / hibernar su sistema, que no requiere privilegios de root. Puede encontrar la publicación original en una publicación del Foro Arch Linux . En esencia, equivale a emitir estos comandos:
detener
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit"/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
reiniciar
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
dbus-suspend
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
hibernar
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Supongo que los botones de la GUI usan aproximadamente estos comandos. Para estar seguro, uno debe mirar el código, pero creo que esta es una apuesta segura.