La question posée par K.Chen est: pourquoi ai-je besoin des privilèges sudo quand je le fais depuis CLI, ahile je n'ai pas besoin de tels privilèges quand je le fais depuis l'interface graphique.
La première partie de la réponse est que les personnes qui conçoivent des environnements de bureau, comme Gnome, KDE, Xfce, Mate, Cinnamon, ... essaient de simplifier le travail de leurs utilisateurs, et configurent l'arrêt et le redémarrage sans nécessiter les informations d'identification sudo. Incidemment, cela implique qu'il doit y avoir une séquence d'arrêt qui n'implique pas l'arrêt du programme, ce qui nécessite des privilèges sudo (aucun moyen de contourner cela).
Je ne sais pas en détail comment chaque DE le fait, mais je sais qu'il existe un moyen doux d'arrêter ou de redémarrer / arrêter / mettre en veille prolongée votre système, qui ne nécessite pas de privilèges root. Vous pouvez trouver l'article d'origine dans un article du forum Arch Linux . En substance, cela revient à émettre ces commandes:
arrêt
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit"/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
redémarrer
#!/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
hiberner
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Je suppose que les boutons de l'interface graphique utilisent à peu près ces commandes. Pour être certain, il faut se pencher sur le code, mais je pense que c'est une valeur sûre.