如何防止访问关机但不重新启动?

如何防止访问关机但不重新启动?

我有一台作为 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 sudoersman sudo, 和man visudo

相关内容