Intento suspender mi servidor usando dbus y UPower. El servidor ejecuta Ubuntu LucidLynx de 64 bits.
Si bien todo funciona bien si estoy sentado directamente en la máquina, no funcionará a través de ssh.
Si me conecto al servidor a través de ssh e intento suspender la máquina usando dbus y upower, me devuelve
dbus.exceptions.DBusException:org.freedesktop.UPower.GeneralError:no autorizado
¿Alguien podría decirme cómo configurar dbus para permitir que los usuarios de ssh suspendan la máquina?
Respuesta aceptada:
Hay dos formas básicas de hacerlo y una solución alternativa:
O necesita modificar /usr/share/polkit-1/actions/org.freedesktop.upower.policy
, configure el XDG_SESSION_COOKIE
variable de entorno al valor apropiado o use pm-suspend
:
Modificar /usr/share/polkit-1/actions/org.freedesktop.upower.policy
Aplicar este parche:
--- /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">
etiqueta/sección), y también funcionará...
o
XDG_SESSION_COOKIE
Cuando esté usando el escritorio, verá que $XDG_SESSION_COOKIE
tiene un valor, pero en una sesión ssh, tiene otro. Tienda XDG_SESSION_COOKIE
p.ej. en un archivo .dotfile o algo así cuando se inicia el escritorio y fuente en su secuencia de comandos que debe hacerlo a través de ssh.
pm-suspender
O simplemente podría dejar de hacerlo con dbus
y UPower
y simplemente emita pm-suspend
como root y acabar de una vez! 🙂