J'essaie de suspendre mon serveur en utilisant dbus et UPower. Le serveur exécute Ubuntu LucidLynx 64bit.
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 essaie de suspendre la machine en utilisant dbus et upower, cela rend
dbus.exceptions.DBusException: org.freedesktop.UPower.GeneralError: non autorisé
Quelqu'un pourrait-il me dire comment configurer dbus afin de permettre aux utilisateurs ssh de suspendre la machine?
Réponses:
Il existe deux méthodes de base et une solution de contournement:
Vous devez soit modifier
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
, définir laXDG_SESSION_COOKIE
variable d'environnement sur la valeur appropriée, soit utiliserpm-suspend
:Modifier
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
Appliquez ce patch:
(À la
<action id="org.freedesktop.upower.suspend">
balise / section), et ça marchera aussi ...ou
XDG_SESSION_COOKIE
Lorsque vous utilisez le bureau, vous verrez qu'il
$XDG_SESSION_COOKIE
a une valeur, mais dans une session ssh, il en a une autre. StockezXDG_SESSION_COOKIE
par exemple dans un fichier .dot ou quelque chose au démarrage du bureau et sourcez-le dans votre script qui doit le faire sur ssh.pm-suspend
Ou vous pouvez simplement renoncer à le faire avec
dbus
etUPower
et simplement émettre enpm-suspend
tant que root et en finir avec! :-)la source
Les fichiers sous
/usr/share/polkit-1/actions
ne sont pas destinés à être modifiés.Créez un fichier nommé
/etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla
la source
ResultAny
nonAllowAny
.