必须四层禁用:一、systemd层强制mask ctrl-alt-del.target并设HandleKeyCombination=ignore;二、内核层同时禁用kernel.ctrl-alt-del和kernel.sysrq;三、旧版SysV init需注释inittab中ca::ctrlaltdel行或修改control-alt-delete.conf;四、物理层关闭KVM热键透传及BIOS USB热键。

systemd 系统:必须同时 mask target 和 ignore 键事件
只改 logind.conf 或只执行 systemctl mask ctrl-alt-del.target 都不够——前者在 TTY 下可能失效,后者若 target 已被软链接到 reboot.target 会报错失败。
- 先强制屏蔽 target:
sudo systemctl mask -f ctrl-alt-del.target(-f覆盖已有符号链接,指向/dev/null) - 再设键事件忽略:
sudo sed -i 's/#HandleKeyCombination=.*/HandleKeyCombination=ignore/' /etc/systemd/logind.conf - 重载并重启服务:
sudo systemctl daemon-reload && sudo systemctl restart systemd-logind
验证命令:systemctl is-enabled ctrl-alt-del.target 应输出 masked;loginctl show --property=HandleKeyCombination 应返回 HandleKeyCombination=ignore。
内核层:Ctrl+Alt+Del 和 SysRq 必须双禁
systemd 不接管时(如 panic 后进入紧急模式、KVM 直连控制台),内核仍可能响应。仅关 SysRq 不够,ctrl-alt-del 内核开关是独立参数。
- 禁用内核热键:
echo 'kernel.ctrl-alt-del = 0' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - 禁用 SysRq:
echo 'kernel.sysrq = 0' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - 检查结果:
sysctl kernel.ctrl-alt-del kernel.sysrq两个值都应为0
注意:kernel.sysrq = 0 会禁用所有 Alt+SysRq 组合键(包括调试用的 R-E-I-S-U-B),高安全环境才启用。
旧版 SysV init(CentOS 6/RHEL 6):改 /etc/inittab 或 /etc/init/control-alt-delete.conf
这类系统不走 systemd,ctrl-alt-del.target 根本不存在。误操作改错文件(比如去动 /etc/systemd/logind.conf)完全无效。
- 若存在
/etc/inittab:注释掉含ca::ctrlaltdel:的行,例如改为#ca::ctrlaltdel:/sbin/shutdown -t3 -r now,然后运行sudo init q - 若用 Upstart(如 Ubuntu 14.04/CentOS 6):编辑
/etc/init/control-alt-delete.conf,注释掉exec行或替换为日志记录,如exec /bin/logger -p authpriv.notice -t init "Ctrl-Alt-Del ignored"
/etc/inittab 在 systemd 系统中通常不存在或为空,不要盲目查找或创建。
验证必须覆盖全部入口,不能只测图形界面
很多配置看似生效,但在 TTY 或登录屏下仍触发登出或闪屏——说明某一层漏了。
- 切换到 TTY:
Ctrl+Alt+F2,按Ctrl+Alt+Del—— 应完全无反应(不写日志、不闪屏、不退出当前会话) - 在 GDM/LightDM 登录界面尝试 —— 不应唤出 SAS、锁屏菜单或任何提示
- 检查日志:
journalctl -b | grep -i "ctrl.*alt.*del"应无匹配项;dmesg | grep -i sysrq也应为空
物理层加固容易被忽略:KVM 设备需关 “Hotkey Passthrough”,BIOS 中禁用 “USB Keyboard Hotkey Support”——否则键盘热键直接透传进系统,绕过所有软件层配置。


















