ssh-userがサーバーを一時停止できるようにdbusを構成するにはどうすればよいですか?


9

dbusとUPowerを使用してサーバーを一時停止しようとしています。サーバーはUbuntu LucidLynx 64ビットを実行します。

マシンに直接座っている場合はすべて正常に動作しますが、ssh経由では機能しません。sshを介してサーバーに接続し、dbusとupowerを使用してマシンを一時停止しようとすると、返されます

dbus.exceptions.DBusException:org.freedesktop.UPower.GeneralError:許可されていません

ssh-usersがマシンを一時停止できるようにdbusを設定する方法を教えてもらえますか?


btw:私はgrepを実行し、現在のdbus-session-adressを使用しています...
Produnis

2
使用している方法の詳細を教えてください。コマンドライン、ツールなど
Kees Cook

回答:


12

これを行うには、2つの基本的な方法と回避策があります。

を変更するか/usr/share/polkit-1/actions/org.freedesktop.upower.policyXDG_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いる場合は、1つの値があることがわかりますが、sshセッションでは別の値があります。ストアXDG_SESSION_COOKIEなどでA .dotfileか何かするとき、デスクトップが起動し、SSH経由でそれを行う必要があるスクリプト内のソースを。

午後サスペンド

それとも、ただでそれをやって上に与えることができるdbusUPower、ちょうど問題pm-suspendルートとしてし、それを乗り越えます!:-)


1
「rootとしてpm-suspendを発行して、それをやり直してください!」の+1 -pm-utilsパッケージから入手できます。
Bjoern Dahlgren 2018年

5

下のファイル/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

答えにタイプミスがあります-最後の行は言うべきではなくResultAny、言うべきAllowAnyです。
Emil Styrke、2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.