我尝试使用 dbus 和 UPower 暂停我的服务器。该服务器运行 Ubuntu LucidLynx 64 位。
虽然如果我直接坐在机器上一切正常,但它不能通过 ssh 工作。如果我通过 ssh 连接到服务器并尝试使用 dbus 和 upower 挂起机器,它会返回
dbus.exceptions.DBusException:org.freedesktop.UPower.GeneralError:未授权
谁能告诉我如何配置 dbus 以允许 ssh 用户暂停机器?
我尝试使用 dbus 和 UPower 暂停我的服务器。该服务器运行 Ubuntu LucidLynx 64 位。
虽然如果我直接坐在机器上一切正常,但它不能通过 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
应用此补丁:
(到
<action id="org.freedesktop.upower.suspend">
标签/部分),它也可以工作......或者
XDG_SESSION_COOKIE
当您使用桌面时,您会看到它
$XDG_SESSION_COOKIE
有一个值,但在 ssh 会话中,它有另一个值。例如,在桌面启动时将其存储XDG_SESSION_COOKIE
在 .dotfile 或其他文件中,并在需要通过 ssh 执行此操作的脚本中获取它。下午暂停
或者您可以放弃使用
dbus
andUPower
并pm-suspend
以 root 身份发布并结束它!:-)下的文件
/usr/share/polkit-1/actions
不会被修改。创建一个名为
/etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla