J'essaie de suspendre mon serveur en utilisant dbus et UPower. Le serveur exécute Ubuntu LucidLynx 64 bits.
Bien que tout fonctionne bien si je suis assis directement sur la machine, cela ne fonctionnera pas via ssh.
Si je me connecte au serveur via ssh et que j'essaie de suspendre la machine à l'aide de dbus et upower, cela redonne
dbus.exceptions.DBusException :org.freedesktop.UPower.GeneralError :non autorisé
Quelqu'un pourrait-il me dire comment configurer dbus afin de permettre aux utilisateurs de ssh de suspendre la machine ?
Réponse acceptée :
Il existe deux manières de procéder et une solution de contournement :
Soit vous devez modifier /usr/share/polkit-1/actions/org.freedesktop.upower.policy
, définissez le XDG_SESSION_COOKIE
variable d'environnement à la valeur appropriée ou utilisez pm-suspend
:
Modifier /usr/share/polkit-1/actions/org.freedesktop.upower.policy
Appliquez ce correctif :
--- /usr/share/polkit-1/actions/org.freedesktop.upower.policy.orig 2011-11-16 19:06:59.274055248 +0100
+++ /usr/share/polkit-1/actions/org.freedesktop.upower.policy 2011-11-16 19:11:15.178864922 +0100
@@ -21,6 +21,7 @@
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
+ <allow_any>yes</allow_any>
</defaults>
</action>
(Au <action id="org.freedesktop.upower.suspend">
tag/section), et ça marchera aussi…
ou
XDG_SESSION_COOKIE
Lorsque vous utilisez le bureau, vous verrez que $XDG_SESSION_COOKIE
a une valeur, mais dans une session ssh, il en a une autre. Stocker XDG_SESSION_COOKIE
par exemple. dans un fichier .dotfile ou quelque chose au démarrage du bureau et sourcez-le dans votre script qui doit le faire via ssh.
pm-suspendre
Ou vous pouvez simplement renoncer à le faire avec dbus
et UPower
et lancez simplement pm-suspend
en tant que root et finissons-en ! 🙂