他のユーザーがログインしている間、そのユーザーがシャットダウンまたは再起動を開始しないようにしたいと思います。ユーザーはTTYユーザー(Ctrl + Alt + F3)またはクライアントホストのSSHユーザーです。
OpenBSD では、org.xfce.session.policy
このタイプの操作を防ぐために、ルールファイルで polkit を使用します。
Debian Test(別名 Buster)でこれを行う方法を探す必要があります。
私はorg.freedesktop.login1.policy
行動を通して発見しました
org.freedesktop.login1.power-off
org.freedesktop.login1.power-off-multiple-sessions
。
これらのアクションのルールファイルを作成しましたが、シャットダウンや再起動を防ぐことはありません。
私の考えでは、polkitはこれらの行動について完全に責任を負いません。
これをどこで見つけるべきかわかりません。おそらくsystemdまたはPAMですか?
編集する
OpenBSD と NetBSD では、デフォルトでは誰も GUI を終了または再起動することはできません。次のように
ルールファイルを生成する必要があります。/usr/local/share/polkit-1/rules.d/
polkit.addRule (function (action, subject) {
if (action.id == "org.xfce.session.xfsm-shutdown-helper")
{
return polkit.Result.YES;
}
});
Debian では、デフォルトではすべてのユーザーが GUI を終了または再起動できます。またはのためのルールファイルが
ありません。org.xfce.session.xfsm-shutdown-helper
org.freedesktop.login1.power-off
ルールファイルを追加しようとしましたが、うまくいきませんreturn polkit.Result.NO;
でした。
Debianではを使用しlightdm
、BSDではxdm
。
答え1
Debian Testing Busterはpolkit 1.05を使用しているため、ルールファイルとjs構文はありません。
古いポリシーキットiniスタイルを使用する必要があります。
他のユーザーがログインしている間にユーザーがシャットダウンまたは再起動を開始しないようにするには、/etc/polkit-1/localauthority/50-local.d/
に2つのpklaファイルを作成する必要があります。
cat /etc/polkit-1/localauthority/50-local.d/Reject_All_Users_To_login1_power-off-multiple-sessions.pkla
[Reject all users to use login1_power-off-multiple-sessions]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
cat /etc/polkit-1/localauthority/50-local.d/Reject_All_Users_To_login1_reboot-multiple-sessions.pkla
[Reject all users to use login1_reboot-multiple-sessions]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
ただし、xfce は /usr/share/polkit-1/actions/org.xfce.session.policy にシャットダウンまたは再起動操作もインストールするため、これだけでは不十分です。
また、これを行うには/etc/polkit-1/localauthority/50-local.d/にpklaファイルを作成する必要があります。
cat /etc/polkit-1/localauthority/50-local.d/Reject_All_Users_To_Use_Xfce_Session_Policy.pkla
[Reject all users to use xfce_session_policy]
Identity=unix-user:*
Action=org.xfce.session.xfsm-shutdown-helper
ResultAny=no
ResultInactive=no
ResultActive=no