linux系统运行级优化与单用户模式密码保护需通过grub密码锁定、禁用rd.break/init=/bin/bash参数、设置默认systemd目标(如multi-user.target)并屏蔽rescue.target来实现,确保物理接触外的未授权访问被有效阻断。

Linux系统运行级优化和单用户模式密码保护,核心在于控制启动流程、限制未授权访问、防止通过init=/bin/bash绕过登录验证。关键操作集中在GRUB引导配置、系统默认目标设置、以及对单用户模式的加固。
修改GRUB引导参数启用密码保护
单用户模式(rescue mode)默认无需密码即可进入,必须通过GRUB级密码锁定。编辑/etc/grub.d/40_custom,在末尾添加管理员账号:
- 使用grub2-mkpasswd-pbkdf2生成加密口令(输入两次密码,复制输出的hash串)
- 在40_custom中添加:
set superusers="admin"
password_pbkdf2 admin [刚生成的hash] - 执行grub2-mkconfig -o /boot/grub2/grub.cfg更新配置
此后所有GRUB菜单编辑(e)、命令行(c)操作均需输入superuser凭据。
禁用无密码进入单用户模式
即使GRUB加锁,仍可能通过内核参数rd.break或init=/bin/bash跳过systemd认证。需双重防护:
- 编辑/etc/default/grub,在GRUB_CMDLINE_LINUX中追加:
rd.shell=0 rd.break=0 systemd.unit=multi-user.target - 若使用SELinux,确保enforcing=1且selinux=1在内核参数中启用
- 运行grub2-mkconfig -o /boot/grub2/grub.cfg生效
设置默认运行级别为多用户图形/终端目标
传统runlevel已由systemd target替代,应明确设定默认启动目标:
- 查看当前默认:systemctl get-default
- 设为多用户文本模式:systemctl set-default multi-user.target
- 设为图形界面(如安装了桌面):systemctl set-default graphical.target
- 禁用rescue.target自动激活:systemctl mask rescue.target
验证与应急处理要点
完成配置后务必测试,避免锁死系统:
- 重启进入GRUB菜单,按e尝试编辑——应提示输入superuser密码
- 尝试添加init=/bin/bash启动——系统应忽略或报错退出
- 物理接触风险仍存在:BIOS/UEFI密码、禁用USB启动、机箱锁等需同步部署
- 备份原始grub.cfg和/boot分区,紧急时可通过Live CD挂载修复
不复杂但容易忽略细节,每一步都影响最终防护效果。










