Как я могу настроить dbus, чтобы позволить ssh-пользователю приостановить работу сервера?

Я пытаюсь приостановить работу своего сервера, используя dbus и UPower. На сервере работает Ubuntu LucidLynx 64bit.

Хотя все работает нормально, если я сижу прямо за машиной, она не будет работать через ssh. Если я подключаюсь к серверу через ssh и пытаюсь приостановить работу компьютера, используя dbus и upower, он возвращает

dbus.exceptions.DBusException: org.freedesktop.UPower.GeneralError: не авторизован

Может ли кто-нибудь сказать мне, как настроить dbus, чтобы ssh-пользователи могли приостановить работу машины?

8
задан 16 November 2011 в 23:10

2 ответа

Существует два основных способа, которыми это может быть сделано и обходное решение:

Любой необходимо изменить /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 и UPower и просто проблема pm-suspend как базируются и заканчивают его!:-)

12
ответ дан 16 November 2011 в 23:10

Файлы согласно /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
0
ответ дан 16 November 2011 в 23:10

Другие вопросы по тегам:

Похожие вопросы: