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! :-)

| improve this answer | |
  • 1
    +1 for "just issue pm-suspend as root and get it over with!" - available from the pm-utils package. – Bjoern Dahlgren 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]
| improve this answer | |
  • There is a typo in the answer - the last line should say ResultAny, not AllowAny. – Emil Styrke 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.