他のユーザーがログインしたときにDebian xfceがシャットダウンまたは再起動されるのを防ぐ方法

他のユーザーがログインしたときにDebian xfceがシャットダウンまたは再起動されるのを防ぐ方法

他のユーザーがログインしている間、そのユーザーがシャットダウンまたは再起動を開始しないようにしたいと思います。ユーザーは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-helperorg.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

関連情報