GRUB 引导口令是做什么的
默认情况下,任何能接触物理机或控制台的人都可以在 GRUB 菜单按 e 编辑内核参数,或者进入单用户与救援模式,绕过系统登录直接获得 root 权限。GRUB2 支持设置引导口令来堵住这条路:口令经 PBKDF2 哈希后写入配置文件,菜单编辑与特定条目启动时要求验证。它与系统登录口令是两套独立机制,口令保护必须配合救援模式认证才形成完整链路。
基本信息
| 适用平台 | RPM 系(麒麟、openEuler)用 grub2- 前缀命令,deb 系用 grub- 前缀 |
|---|---|
| 设置口令 | grub2-setpassword 交互输入两次口令 |
| 口令文件 | /boot/grub2/user.cfg 中的 GRUB2_PASSWORD 哈希 |
| 手工生成哈希 | grub2-mkpasswd-pbkdf2 |
| 重新生成配置 | grub2-mkconfig -o /boot/grub2/grub.cfg |
典型使用场景
- 等保核查要求对引导过程做访问控制,防止通过单用户模式绕过身份认证
- 机房门禁不严或终端部署在公共区域时,防止无关人员改内核参数进入系统
- 运维规范要求:限制内核参数被随意修改,保证启动配置处于受控状态
- 多系统引导环境下限制非授权用户启动到维护用条目
- 安全事件整改项:封堵物理接触即可获取 root 的通道
- 交付验收时逐台验证,确认口令保护在真机重启后确实生效
配置流程
配置流程
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak # 先备份,mkconfig 会重写
grub2-setpassword # 交互输入两次口令
cat /boot/grub2/user.cfg # 确认已生成哈希串
grub2-mkconfig -o /boot/grub2/grub.cfg # 重新生成引导配置
grep -n 'password' /boot/grub2/grub.cfg | head # 确认配置已写入
# 通用方式:生成 PBKDF2 哈希后写入 /etc/grub.d/40_custom
grub2-mkpasswd-pbkdf2 # 粘贴输出到 40_custom
# 验证:重启到 GRUB 菜单按 e,应弹出认证提示方式与适用场景
| 方式 | 操作 | 适用与注意 |
|---|---|---|
| grub2-setpassword | 交互设置,自动生成 user.cfg | RPM 系最省事,注意会覆盖已有口令 |
| mkpasswd-pbkdf2 | 生成哈希手工写入 40_custom | 跨发行版通用,便于纳管配置 |
| 救援模式认证 | 设置 sulogin 或 systemd 维护口令 | 只有引导口令而无此项仍有绕过路径 |
| 配置备份 | 保留 grub.cfg 与 user.cfg 副本 | 口令丢失时便于应急处理 |
grub2-setpassword 生成的是 PBKDF2 哈希,明文只存在于管理员记忆中;口令要纳入密码管理流程并留交接记录,避免人员变动后无人知晓。
设置引导口令会提高维护成本:口令丢失时需要救援介质处理。改完必须实际重启验证一次,并用「按 e 能否编辑」验证拦截确实生效。