其他使用者登錄時如何在 Debian xfce 中阻止關機或重啟
我想防止使用者在其他使用者登錄時啟動關機或重啟。使用者可以是 TTY 使用者 (Ctrl+Alt+F3) 或來自客戶端主機的 ssh 使用者。
在 OpenBSD 中,我使用帶有規則文件的 polkit
org.xfce.session.policy
來防止此類操作。我需要在 Debian 測試(又名 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
.
Debian Testing Buster 使用 polkit 1.05,所以沒有規則文件,也沒有 js 語法。
您必須使用舊的 policykit ini 樣式。
為了防止使用者在其他使用者登錄時啟動關機或重啟,
您必須在 /etc/polkit-1/localauthority/50-local.d/ 中創建兩個 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