D'accord, tout d'abord, ce n'est pas un problème auquel je suis confronté, mais j'aimerais mieux comprendre cela.
Si je souhaite arrêter / redémarrer ma machine depuis la command line, j'ai besoin d'appeler:
$ sudo poweroff $ sudo reboot
C'est-à-dire, j'ai besoin de privilèges root pour faire ces appels ACPI.
Cependant, je démarre mon DE, (j'utilise XFCE) sans lui accorder les droits root: $ startxfce4 –with-ck-launch
Maintenant, je sais que le paramètre --with-ck-launch
permet à XFCE d'arrêter / redémarrer mon système, mais je ne comprends pas comment.
Qu'est-ce qui permet à ConsoleKit de s'arrêter sans privilèges root? Comment peut-il changer le niveau d'exécution sans privilèges super-user? Et comme c'est possible, comment puis-je arrêter ma machine depuis la console sans privilèges root?
Vous pouvez communiquer avec ConsoleKit via dbus. Par exemple, en utilisant l'outil dbus-send
, quelques commands notables sont,
Fermer:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Redémarrer:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Il y a aussi des commands pour hibernate et suspendre mais je ne sais pas ce qu'elles sont.
edit: Commande de suspension trouvée
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0
Sur les systèmes newwer
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend