如何在 Linux 中禁用关机和重启命令
shutdown命令会安排一个时间让 Linux 系统关闭电源,当使用特定选项调用时,它也可以用于停止、关闭电源或重新启动机器,而reboot则指示系统重新启动。
某些 Linux 发行版(例如 Ubuntu、Linux Mint、Mandriva 等)默认允许以普通用户身份重启/暂停/关闭系统。这不是理想的设置,尤其是在服务器上,对于系统管理员来说,这肯定是值得担心的事情。
在本文中,我们将展示如何在 Linux 中禁用普通用户的关机和重启命令。
在 Linux 中禁用关机和重启命令
禁用关机和重启命令的最简单方法是使用/etc/sudoers文件,在这里您可以指定不允许执行这些命令的用户(示例)或组(开发人员)。
# vi /etc/sudoers
将这些行添加到命令别名部分。
Cmnd_Alias SHUTDOWN = /sbin/shutdown,/sbin/reboot,/sbin/halt,/sbin/poweroff # User privilege specification example ALL=(ALL:ALL) ALL, !SHUTDOWN # Allow members of group sudo to execute any command %developers ALL=(ALL:ALL) ALL, !SHUTDOWN
现在尝试以normail用户身份执行关机和重启命令(示例)。
另一种方法是删除除 root 之外的所有用户的关机和重启命令的执行权限。
# chmod o-x /sbin/shutdown # chmod o-x /sbin/reboot
注意:在 systemd 下,这些文件 (/sbin/shutdown、/sbin/reboot、/sbin/halt、/sbin/poweroff) 只是 /bin/systemctl 的符号链接:
# ls -l /sbin/shutdown # ls -l /sbin/reboot # ls -l /sbin/halt # ls -l /sbin/poweroff
要阻止其他用户运行这些命令,您只需删除执行权限(如上所述),但这在 systemd 下无效。您可以删除执行权限,这意味着/bin/systemctl
除 root 之外的所有其他用户只能运行 systemctl。
# chmod o-x /bin/systemctl
您可能还想通过阅读以下指南来了解如何禁用某些功能(例如 SSH 根登录以及限制 SSH 访问、SELinux、Linux 中不需要的服务):
- 如何在 Ubuntu 中启用和禁用 Root 登录
- 如何在 RHEL/CentOS 7/6 中临时或永久禁用 SELinux
- 在 Linux 中禁用或启用 SSH 根登录并限制 SSH 访问
- 如何停止和禁用 Linux 系统中不需要的服务
就是这样!在本文中,我们展示了如何在 Linux 中为普通系统用户禁用关机和重启命令。如果您知道其他方法,请在评论中与我们分享。