如何配置 dbus 以允许 ssh-user 挂起服务器?

Pro*_*nis 9 ssh dbus

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

如果我直接坐在机器前,一切正常,但无法通过 ssh 运行。如果我通过 ssh 连接到服务器并尝试使用 dbus 和 upower 挂起机器,它会返回

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

谁能告诉我如何配置 dbus 以允许 ssh-users 挂起机器?

Pet*_*rch 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>
 
Run Code Online (Sandbox Code Playgroud)

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

或者

XDG_SESSION_COOKIE

当您使用桌面时,您会看到它$XDG_SESSION_COOKIE有一个值,但在 ssh 会话中,它有另一个值。XDG_SESSION_COOKIE例如,在桌面启动时将其存储在 .dotfile 或其他内容中,并在需要通过 ssh 执行此操作的脚本中获取它。

下午暂停

或者,您可以放弃使用dbusand执行此操作,然后以 root 身份UPower发出pm-suspend并结束它!:-)


小智 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
Run Code Online (Sandbox Code Playgroud)