我想防止用户在其他用户登录时启动关机或重启。用户可以是 TTY 用户 (Ctrl+Alt+F3) 或来自客户端主机的 ssh 用户。
在 OpenBSD 中,我使用带有规则文件的 polkitorg.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 文件
但是,这还不够,因为 xfce 也在 /usr/share/polkit-1/actions/org.xfce.session.policy 中安装了关闭或重启的操作。
您还必须在 /etc/polkit-1/localauthority/50-local.d/ 中为此操作创建一个 pkla 文件