D-Bus
如何以使用者身份通過 ConsoleKit DBus 消息關閉系統?
我找到了以下命令行來關閉 Debian/GNU Linux 系統
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 互動,它可以將關閉系統的權限授予普通使用者。
根據這個Debian 錯誤報告,這是由於 ConsoleKit 在版本 0.4.1 和 0.4.2 之間的上游更改。該執行緒包含一些建議和解決方法,其中之一是安裝直接與 ConsoleKit 對話的顯示管理器(如 GDM 或 lightdm)。
如果您使用 consolekit > 0.4.1(wheezy 和更新),這將不再適用。要讓它再次工作,請添加
session optional pam_loginuid.so
到
/etc/pam.d/common-session
.