La domanda posta da K.Chen è: perché ho bisogno dei privilegi di sudo quando lo faccio dalla CLI, anche se non ho bisogno di tali privilegi quando lo faccio dalla GUI.
La prima parte della risposta è che le persone che progettano ambienti desktop, come Gnome, KDE, Xfce, Mate, Cinnamon, ... cercano di semplificare il lavoro dei loro utenti e configurano l'arresto e il riavvio senza richiedere credenziali sudo. Questo, per inciso, implica che ci deve essere una sequenza di spegnimento che non comporta l'arresto del programma, che richiede privilegi di sudo (assolutamente no).
Non so in dettaglio come ogni DE lo fa, ma so che esiste un modo delicato per far cadere o riavviare / spegnere / ibernare il tuo sistema, che non richiede i privilegi di root. Puoi trovare il post originale in un post del forum Arch Linux . In sostanza, equivale a emettere questi comandi:
arresto
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit"/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
riavvio
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
dbus-sospendere
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
hibernate
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
La mia ipotesi è che i pulsanti della GUI utilizzino approssimativamente questi comandi. Per essere sicuri si dovrebbe esaminare il codice, ma credo che questa sia una scommessa sicura.