如何在 CentOS/RHEL 6 中禁用 Ctrl+Alt+Del 导致系统重启

在虚拟控制台(黑屏 tty)上按下组合键“Ctrl+Alt+Del”时,会导致系统重新启动。
这是默认行为,有时人们不喜欢此功能,因为它可能会导致系统意外重启。
该帖子提供了有关如何禁用“alt+ctrl+del”组合键以防止意外关机的过程。

关闭命令由 /sbin/init 控制,在 /etc/init/control-alt-delete.conf 中描述为:

# cat /etc/init/control-alt-delete.conf
# control-alt-delete - emergency keypress handling
#
# This task is run whenever the Control-Alt-Delete key combination is
# pressed.  Usually used to shut down the machine.
#
# Do not edit this file directly. If you want to change the behaviour,
# please create a file control-alt-delete.override and put your changes there.
start on control-alt-delete
exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

如文件中所述,不要注释掉“exec /sbin/shutdown...”行以禁止该命令,而是按照下面列出的步骤操作。

  1. 生成一个只有一行的新文件 /etc/init/control-alt-delete.override:
# vi /etc/init/control-alt-delete.override
exec /bin/true

2.通过initctl命令反映control-alt-delete实例的新配置:

# initctl reload-configuration control-alt-delete

然后,“alt+ctrl+del”组合键现在什么也不做。
我们不需要重新启动服务器,重新启动任何服务,任何进程。

www. On IT Road .com

从控制台按下“Ctrl+Alt+Del”时,仅允许 root 重新启动

我们可以按照以下步骤仅允许 root 重新启动它。

  1. 编辑 /etc/init/control-alt-delete.conf ,删除所有行并放入以下行:
# vi /etc/init/control-alt-delete.conf
start on control-alt-delete
exec /sbin/control-alt-delete.sh
  1. 现在使用 vi 编辑器创建一个 /sbin/control-alt-delete.sh,内容如下。
# vi /sbin/control-alt-delete.sh
#!/bin/bash
user=`w | grep tty | grep root | cut -d' ' -f1`
if [ -z $user ]
then
     echo  "control + alt + delete tried by non-root user at `date` " >> /var/log/cad.log
else
     /sbin/shutdown -r now "Control-Alt-Delete pressed"
fi

3.给/sbin/control-alt-delete.sh 500权限

# chmod 500 /sbin/control-alt-delete.sh

注意:此方法不适用于有许多用户同时通过 vnc 登录服务器的终端服务器。
我们可能需要相应地修改脚本。

禁用“Ctrl+Alt+Del”触发关机并记录按键事件

有时我们可能想要禁用“Ctrl+Alt+Del”触发的关机,只导致一些审计日志条目,而不是系统重新启动。
请按照以下步骤操作:

  1. 使用原始 .conf 文件创建 control-alt-delete.override 文件,例如:
# cp -v /etc/init/control-alt-delete.conf /etc/init/control-alt-delete.override

2.编辑/etc/init/control-alt-delete.override文件,替换exec /sbin/shutdown这一行,如下一行,每次按下Ctrl-Alt-Del都会生成一个日志条目:

# vi /etc/init/control-alt-delete.override
exec /usr/bin/logger -p authpriv.notice -t init "Ctrl-Alt-Del was pressed and ignored"
  1. 通过切换到虚拟控制台并按 Ctrl-Alt-Del 进行测试。
日期:2020-09-17 00:10:50 来源:oir作者:oir