web-dev-qa-db-ja.com

ユーザーとしてConsoleKitDBusメッセージを介してシステムをシャットダウンするにはどうすればよいですか?

Debian/GNULinuxシステムをシャットダウンするための次のコマンドラインを見つけました

dbus-send \
  --system \
  --dest=org.freedesktop.ConsoleKit \
  --type=method_call \
  --print-reply \
  --reply-timeout=2000 \
  /org/freedesktop/ConsoleKit/Manager \
  org.freedesktop.ConsoleKit.Manager.Stop

スーパーユーザーとしてコマンドを実行すると機能しますが、非特権ユーザーとしては次のように表示されます。

Error org.freedesktop.ConsoleKit.Manager.NotPrivileged: Not Authorized

PolicyKitと対話して、システムをシャットダウンする特権を通常のユーザーに付与できるように、このようなコマンドを変更できるかどうかを知りたいと思います。

4
enzotib

これによると Debianバグレポート 、これはバージョン0.4.1と0.4.2の間のConsoleKitのアップストリームの変更によるものです。スレッドにはいくつかの提案と回避策が含まれています。そのうちの1つは、ConsoleKitと直接通信するディスプレイマネージャー(GDMやlightdmなど)をインストールすることです。

2
jw013

Consolekit> 0.4.1(wheezy以降)を使用している場合、これはそのままでは機能しなくなります。再び機能させるには、

session optional        pam_loginuid.so

to /etc/pam.d/common-session

2
bla bla

私の場合:

  • Debian 8 AMD64;
  • フラックスボックス;
  • startx(DMなし)。
  • インストールされているパッケージ:
    • dbus
    • dbus-X11
    • consolekit
    • policykit-1
    • libpam-ck-connector

この解決策 うまく機能します:

次の内容でcustom-actions.pklaファイルを作成します。

Sudo nano /var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla

これをファイルに入れます。

[Actions for xbmc user]
Identity=unix-user:xbmc
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesk​top.udisks.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
0
Gluttton