如何配置dbus以允许ssh用户挂起服务器?


9

我尝试使用dbus和UPower挂起服务器。该服务器运行Ubuntu LucidLynx 64位。

如果我直接坐在机器上,一切都可以正常工作,但无法通过ssh正常工作。如果我通过ssh连接到服务器,并尝试使用dbus和upower挂起计算机,它将返回

dbus.exceptions.DBusException:org.freedesktop.UPower.GeneralError:未经授权

谁能告诉我如何配置dbus以便ss​​h用户挂起计算机吗?


顺便说一句:我做grep并使用当前的dbus-session-
adress

2
您能否提供有关所用方法的一些详细信息?什么命令行,工具等
Kees Cook

Answers:


12

可以通过两种基本方法来完成此工作,并采取解决方法:

您需要修改/usr/share/polkit-1/actions/org.freedesktop.upower.policy,将XDG_SESSION_COOKIE环境变量设置为适当的值或使用pm-suspend

修改中 /usr/share/polkit-1/actions/org.freedesktop.upower.policy

应用此补丁:

--- /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>

(到<action id="org.freedesktop.upower.suspend">标签/部分),它也可以工作...

要么

XDG_SESSION_COOKIE

当您使用桌面时,您会看到它$XDG_SESSION_COOKIE具有一个值,但是在ssh会话中,它具有另一个值。XDG_SESSION_COOKIE例如,在桌面启动时将其存储在.dotfile或其他内容中,并在需要通过ssh完成的脚本中提供它。

暂停

或者,您可以放弃使用dbus和,UPowerpm-suspend以root身份发出并使用它!:-)


1
+1表示“只需以root身份发出pm-suspend即可解决!” -可从pm-utils软件包获得。
Bjoern Dahlgren

5

/usr/share/polkit-1/actions的文件无意修改。

创建一个名为 /etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla

[Allow all ssh-users to upower]
Identity=unix-group:ssh-users
Action=org.freedesktop.upower.policy
ResultInactive=no
ResultActive=yes
AllowAny=yes

答案中有错别字-最后一行应该说ResultAny不是AllowAny
埃米尔·斯特尔克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.