Intento suspender mi servidor usando dbus y UPower. El servidor ejecuta Ubuntu LucidLynx 64bit.
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, 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?
Respuestas:
Hay dos formas básicas de hacer esto y una solución alternativa:
O necesita modificar
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
, establecer laXDG_SESSION_COOKIE
variable de entorno en el valor apropiado o usarpm-suspend
:Modificando
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
Aplica este parche:
(A la
<action id="org.freedesktop.upower.suspend">
etiqueta / sección), y también funcionará ...o
XDG_SESSION_COOKIE
Cuando use el escritorio, verá que
$XDG_SESSION_COOKIE
tiene un valor, pero en una sesión ssh, tiene otro. Almacene,XDG_SESSION_COOKIE
por ejemplo, en un archivo .dot o algo así cuando se inicie el escritorio y compérelo en su script que necesita hacerlo a través de ssh.pm-suspender
O simplemente puede renunciar a hacerlo con
dbus
yUPower
y emisión simplementepm-suspend
como root y acabar de una vez! :-)fuente
Los archivos debajo
/usr/share/polkit-1/actions
no están destinados a ser modificados.Crea un archivo llamado
/etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla
fuente
ResultAny
, noAllowAny
.