- pklocalauthority は廃止されました
- systemd と logind および polkit が必要です。
利用可能なアクション
pkaction
# or /usr/share/polkit-1/actions/
/usr/share/polkit-1/actions/org.freedesktop.login1.policy
を見てください。
ルールを追加
最初にシステム メッセージの監視を開始して、新しいルールが機能するかどうかを確認します。
journalctl -f
次に、ファイル /etc/polkit-1/rules.d/60-noreboot_norestart.rules
を作成します (javascript)
このファイルでは、アクションをチェックして users
を許可するロジックを追加します。 power
で group または require su
承認:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions") {
if (subject.isInGroup("power")) {
return polkit.Result.YES;
} else {
return polkit.Result.AUTH_ADMIN;
}
}
});
ルールがロードされ、機能するはずです。以下の参照。
<オール>まず、ConsoleKit のシャットダウン機能は、「単一ユーザー」と「複数ユーザー」を 2 つの異なる状況と見なすことに注意してください。他のユーザーがログインしている場合、システムをシャットダウンするには常に管理者認証が必要です。
このようなアクションはすべて PolicyKit によって管理されます。ポリシーを調整したい場合は、polkit(8) – /etc/polkit-1/rules.d/20-disallow-shutdown.rules
で説明されているように行うことができます。 :
polkit.addRule(function(action, subject) { if ((action.id == "org.freedesktop.consolekit.system.stop" || action.id == "org.freedesktop.consolekit.system.restart") && subject.isInGroup("users")) { return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO; } });
PolicyKit 0.105 以前のバージョンでは、これが pklocalauthority(8) – /etc/polkit-1/localauthority/50-local.d/20-disallow-shutdown.pkla
に文書化されています。 :
[Disallow shutdown] Identity=unix-group:users Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart ResultAny=no ResultInactive=no ResultActive=auth_admin
Action
s は、ConsoleKit ポリシー ファイルにリストされているか、pkaction
を実行してリストされています。 .