防止某些用户关闭、挂起等的最“Ubuntu”方式是什么?

tho*_*ter 21 shutdown suspend policykit

在传统的 Unix 系统上,非 root 用户不能这样做。是什么让用户在现代桌面环境中拥有这种能力,我将如何在每个用户或每个组的基础上禁用它?

我已经看到了一种防止任何人关闭/挂起的好方法,但理想情况下,我正在寻找的是防止某些用户(例如,通过从某个用户组中添加/删除他们)能够执行关闭,重启,暂停。

Jam*_*dge 20

正如另一个问题中提到的,您可以通过 PolicyKit 的本地权限系统来控制这些操作。

如果您创建一个/etc/polkit-1/50-local.d/restrict-shutdown.pkla包含以下内容的文件:

[Disable shutdown/etc for group restricted]
Identity=unix-group:restricted
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no
Run Code Online (Sandbox Code Playgroud)

这将阻止组中的任何成员restricted执行匹配的操作。或者,如果您想限制单个用户,请替换unix-group:restrictedunix-user:user1;unix-user:user2;...。任何与此策略不匹配的用户都应以默认行为结束。