別のユーザーがログインしているときにユーザーがシャットダウンまたは再起動を開始しないようにしたい。ユーザーはTTYユーザー(Ctrl + Alt + F3)またはクライアントホストのsshユーザーにすることができます。
OpenBSDでは、このようなアクションを防ぐために、ルールファイルでpolkit org.xfce.session.policy
を使用しています。
Debian Testing(別名バスター)でこれを行う方法を見つける必要があります。
アクションのある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
を使用します。
Debian TestingBusterはpolkit1.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にシャットダウンまたは再起動するアクションをインストールするため、これだけでは不十分です。
このアクションのpklaファイルも/etc/polkit-1/localauthority/50-local.d/に作成する必要があります
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