网站搜索

如何在 Linux 中禁用关机和重新启动命令


shutdown 命令安排 Linux 系统关闭电源的时间,当使用特定选项调用时,它也可以用于停止、关闭电源或重新启动计算机,并重新启动 指示系统重新启动。

默认情况下,某些 Linux 发行版(例如 Ubuntu、Linux Mint、Mandriva 等)可以以普通用户身份重新启动/停止/关闭系统。这不是理想的设置,尤其是在服务器上,它一定是需要担心的事情,尤其是对于系统管理员来说。

在本文中,我们将展示如何在 Linux 中为普通用户禁用关机重新启动命令。

在 Linux 中禁用关机和重新启动命令

使用/etc/sudoers文件禁用关机重新启动命令的最简单方法,在这里您可以指定一个用户(howtoing<)或组(开发人员)不允许执行这些命令。

vi /etc/sudoers

将这些行添加到命令别名部分。

Cmnd_Alias     SHUTDOWN = /sbin/shutdown,/sbin/reboot,/sbin/halt,/sbin/poweroff

User privilege specification
tecmint   ALL=(ALL:ALL) ALL, !SHUTDOWN

Allow members of group sudo to execute any command
%developers  ALL=(ALL:ALL) ALL,  !SHUTDOWN

现在尝试以normail用户(howtoing)身份执行关机重新启动命令。

另一种方法是删除除 root 之外的所有用户的 shutdownreboot 命令的执行权限。

chmod o-x /sbin/shutdown
chmod o-x /sbin/reboot

注意:在systemd下,这些文件(/sbin/shutdown、/sbin/reboot、/sbin/halt、/sbin/poweroff)只是/bin的符号链接/系统控制:

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 root 登录并限制 SSH 访问、SELinux、Linux 中不需要的服务:

  1. 如何在 Ubuntu 中启用和禁用 root 登录
  2. 如何在 RHEL/CentOS 7/6 中临时或永久禁用 SELinux
  3. 在 Linux 中禁用或启用 SSH Root 登录并限制 SSH 访问
  4. 如何停止和禁用 Linux 系统中不需要的服务

就是这样!在本文中,我们展示了如何在 Linux 中为普通系统用户禁用关机和重新启动命令。您知道还有其他方法可以做到这一点,请在评论中与我们分享。