首页/系统/信创系统运维速查/单用户与救援模式认证检查
安全加固65 条

单用户与救援模式认证检查

等保要求:进入单用户/救援模式必须口令认证。systemd 环境由 rescue/emergency 单元调用 sulogin 保障,与 GRUB 口令配合形成闭环。

信创系统运维速查系统更新于 2026-10-13

单用户与救援模式的认证要求

等级保护与主机安全基线普遍要求:进入单用户、救援或紧急模式必须经过口令认证,否则能接触设备的人可以不输密码直接拿到 root 权限。systemd 环境下这一层由 rescue/emergency 单元调用 sulogin 实现,是否真的生效取决于单元文件里的 ExecStart 有没有带该参数。

为什么这是一道门

救援模式的设计初衷是本地排障:不进完整启动流程也能拿到高权限 shell 去修系统,代价就是任何能接触设备的人都可能绕过登录认证。因此物理安全不足的机房必须靠口令把关;而 GRUB 菜单如果允许随意编辑内核参数,攻击者可以换一个不需要认证的启动目标,口令这道门也就形同虚设。

基本信息

适用平台使用 systemd 的 Linux 发行版(麒麟、UOS、openEuler、CentOS 7+ 等)
关键单元rescue.service、emergency.service
认证程序sulogin,要求输入 root 口令
配套措施GRUB 菜单口令,防止追加内核参数绕过

典型使用场景

  • 等保测评现场需要提供救援模式口令认证的核查证据
  • 安全基线加固后复核加固项是否真的生效,而不只是改了配置文件
  • 新到货整机做交付前安全检查,确认默认模板没有留下免密入口
  • 安全事件回溯时判断攻击者是否利用单用户模式绕过认证
  • 操作系统大版本升级后重新检查默认单元是否仍带认证参数

核查与验证

核查与验证
# 查看两个单元实际调用的命令
grep -n -- '-s\|sulogin' /usr/lib/systemd/system/rescue.service
grep -n -- '-s\|sulogin' /usr/lib/systemd/system/emergency.service
systemctl cat rescue.service | grep -i execstart
# 验证方法:在测试机重启,在 GRUB 编辑内核行追加
# systemd.unit=rescue.target
# 观察是否弹出 root 口令提示;直接进入 shell 即该加固项不合格
# 若 GRUB 菜单可直接编辑,说明还缺 GRUB 口令保护

核查项与判定

核查项合格表现不合格表现
救援模式认证进入前要求输入 root 口令直接给出高权限 shell
紧急模式认证同样要求口令绕过救援模式改从紧急模式进入
GRUB 保护菜单不可编辑或编辑需口令可自由追加内核参数
口令强度root 口令符合复杂度要求root 无口令或使用默认口令
审计留痕加固项有核查命令与输出记录只有口头结论,无法提供证据
多数发行版模板默认已带 sulogin,真正容易漏的是 GRUB 无人守护:能编辑内核参数的机器,等于两道门只关了一道,两处要一起核查。

易错点

  • 只改 GRUB 口令不查救援单元,紧急模式仍可能免密进入,加固不闭环
  • 在生产机上直接重启验证救援模式,会打断业务:验证安排在测试机或维护窗口
  • 救援与紧急两个目标行为不同,只验一个就下结论,基线核查容易漏项
  • root 口令本身是弱口令时,sulogin 只相当于把门锁上却把钥匙插在锁孔里

数据来源与参考

  • systemd 官方文档(rescue.target)
  • 等保 2.0 访问控制要求
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌