如何配置dbus以允许ssh-user挂起服务器?
我尝试使用dbus和UPower暂停我的服务器。 服务器运行Ubuntu LucidLynx 64bit。
如果我直接坐在机器上一切正常,它将无法通过ssh工作。 如果我通过ssh连接到服务器并尝试使用dbus和upower暂停机器,它会返回
dbus.exceptions.DBusException:org.freedesktop.UPower.GeneralError:未授权
有谁能告诉我如何配置dbus以允许ssh用户暂停机器?
有两种基本方法可以完成,还有一个解决方法:
您需要修改/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 @@ no yes + yes
(对于
标签/部分),它也会起作用……
要么
XDG_SESSION_COOKIE
当您使用桌面时,您会看到$XDG_SESSION_COOKIE
有一个值,但在ssh会话中,它有另一个值。 将XDG_SESSION_COOKIE
存储在.dot文件或桌面启动时的某些内容中,并将其源于需要通过ssh执行的脚本中。
PM-暂停
或者你可以放弃使用dbus
和UPower
然后以root身份发出pm-suspend
并将其结束! 🙂
/usr/share/polkit-1/actions
下的文件/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