我有一台作为 plex 服务器运行的 ubuntu 电脑。如何才能让任何人都无法关闭计算机,而只允许用户重新启动机器?我知道在 Windows 上可以做到这一点,但我只是想知道在 ubuntu 上是否也可以做到这一点。
答案1
最有效的方法是屏蔽断电目标,如下所示:
sudo systemctl mask poweroff.target
现在,任何人都无法关闭机器,除非他们按住电源按钮或物理断开机器的电源。
重启不受此掩码影响。
如果您将来需要关闭机器进行维护或硬件更换,您可以unmask
目标:
sudo systemctl unmask poweroff.target
答案2
如果你只需要授予非管理员用户重启权限,sudoers
您可以在您的文件中添加一个条目reboot
(和/或systemctl reboot
,取决于您希望它们运行什么)。然后它们将能够运行sudo reboot
(和/或sudo systemctl reboot
)。这个答案假设他们无法以其他方式获得sudo
— 即,他们是普通的、非管理员用户,不属于该wheel
组。
该sudoers
文件位于/etc/sudoers
,但您不应该直接编辑它。相反,你应该只使用 来编辑它visudo
。你需要以 root 身份来编辑它,所以你需要运行sudo visudo
。该visudo
命令将验证你编辑的语法,你应该始终使用它来避免破坏你的配置并阻止你自己将来获得 root 访问权限。
然后您可以将类似以下几行的内容添加到您的sudoers
文件中:
username ALL=(root): /usr/sbin/reboot
username ALL=(root): /usr/bin/systemctl reboot
其中username
是用户的用户名(或%groupname
某个组的用户名), 路径 是系统上命令的实际路径(使用 检查which
,例如which reboot
.)。
如需了解更多信息,请查看man sudoers
,man sudo
, 和man visudo
。