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


21

在传统的Unix系统上,非root用户不能执行此操作。是什么使用户在现代桌面环境中具有此功能,以及如何基于每个用户或每个组禁用此功能?

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

Answers:


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

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


不再适用于14.04.1。
熟练地

0

以根用户身份创建和编辑此文件:

/etc/polkit-1/localauthority/50-local.d/power-management.pkla

复制并粘贴以下内容:

[Disable shutdown/restart for users jim jane]
Identity=unix-user:jim;unix-user:jane
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

[Disable suspend/hibernate for users jim jane]
Identity=unix-user:a;unix-user:vvpinker
Action=org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.