ssh-user가 서버를 일시 중단 할 수 있도록 dbus를 구성하려면 어떻게해야합니까? ssh를 통해 서버에

dbus와 UPower를 사용하여 서버를 일시 중지하려고합니다. 서버는 Ubuntu LucidLynx 64 비트를 실행합니다.

기계에 직접 앉아 있으면 모든 것이 잘 작동하지만 ssh를 통해 작동하지는 않습니다. ssh를 통해 서버에 연결하고 dbus 및 upower를 사용하여 시스템을 일시 중지하려고하면 다시 제공합니다.

dbus.exceptions.DBusException : org.freedesktop.UPower.GeneralError : 권한이 없습니다

ssh 사용자가 컴퓨터를 일시 중단 할 수 있도록 dbus를 구성하는 방법을 알려주시겠습니까?



답변

이 작업을 수행 할 수있는 두 가지 기본 방법과 해결 방법이 있습니다.

어느 쪽이든 당신은 수정해야 /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예를 들어 데스크탑이 시작될 때 .dot 파일 또는 무언가에 저장 하고 ssh를 통해이를 수행해야하는 스크립트로이를 소싱하십시오.

오후 중단

또는 당신은 단지와 함께 그 일을 포기 수 dbusUPower그냥 문제 pm-suspend루트로하고 그것을 극복! 🙂


답변

아래 파일 /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