I try to suspend my server using dbus and UPower. The server runs Ubuntu LucidLynx 64bit.

While everything works fine if I am sitting directly at the machine, it won't work via ssh. If I connect to the server via ssh and try to suspend the machine using dbus and upower, it gives back

dbus.exceptions.DBusException: org.freedesktop.UPower.GeneralError: not authorized

Could anyone please tell me how to configure dbus in order to allow ssh-users to suspend the machine?

  • btw: I DO grep and use the current dbus-session-adress...
    – Produnis
    Jan 18 '11 at 19:11
  • 2
    Can you give some details on the method you're using? What command line, tools, etc.
    – Kees Cook
    Feb 23 '11 at 9:02

There are two basic ways this can be done and a workaround:

Either you need to modify /usr/share/polkit-1/actions/org.freedesktop.upower.policy, set the XDG_SESSION_COOKIE environment variable to the appropriate value or use pm-suspend:

Modifying /usr/share/polkit-1/actions/org.freedesktop.upower.policy

Apply this 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 @@
+      <allow_any>yes</allow_any>

(To the <action id="org.freedesktop.upower.suspend"> tag/section), and it'll work too...



When you're using the desktop, you'll see that $XDG_SESSION_COOKIE has one value, but in an ssh session, it has another. Store XDG_SESSION_COOKIE e.g. in a .dotfile or something when the desktop starts and source it in your script that needs to do it over ssh.


Or you could just give up on doing it with dbus and UPower and just issue pm-suspend as root and get it over with! :-)

  • 1
    +1 for "just issue pm-suspend as root and get it over with!" - available from the pm-utils package. Mar 15 '18 at 22:35

Files under /usr/share/polkit-1/actions are not meant to be modified.

Create a file named /etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla

[Allow all ssh-users to upower]
  • There is a typo in the answer - the last line should say ResultAny, not AllowAny. Mar 29 '18 at 12:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.