Provo a sospendere il mio server usando dbus e UPower. Il server esegue Ubuntu LucidLynx a 64 bit.
Mentre tutto funziona bene se sono seduto direttamente davanti alla macchina, non funzionerà tramite ssh.
Se mi collego al server tramite ssh e provo a sospendere la macchina usando dbus e upower, restituisce
dbus.exceptions.DBusException:org.freedesktop.UPower.GeneralError:non autorizzato
Qualcuno potrebbe dirmi come configurare dbus per consentire agli utenti ssh di sospendere la macchina?
Risposta accettata:
Esistono due modi di base per farlo e una soluzione alternativa:
O devi modificare /usr/share/polkit-1/actions/org.freedesktop.upower.policy
, imposta il XDG_SESSION_COOKIE
variabile di ambiente al valore appropriato o utilizzare pm-suspend
:
Modifica di /usr/share/polkit-1/actions/org.freedesktop.upower.policy
Applica questa patch:
--- /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>
(Al <action id="org.freedesktop.upower.suspend">
tag/sezione), e funzionerà anche...
o
XDG_SESSION_COOKIE
Quando utilizzi il desktop, vedrai che $XDG_SESSION_COOKIE
ha un valore, ma in una sessione ssh ne ha un altro. Memorizza XDG_SESSION_COOKIE
per esempio. in un file .dot o qualcosa del genere all'avvio del desktop e reperirlo nel tuo script che deve farlo su ssh.
pm-sospensione
Oppure potresti semplicemente rinunciare a farlo con dbus
e UPower
ed emetti semplicemente pm-suspend
come root e falla finita! 🙂