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를 통해이를 수행해야하는 스크립트로이를 소싱하십시오.
오후 중단
또는 당신은 단지와 함께 그 일을 포기 수 dbus
와 UPower
그냥 문제 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