补充说明
grub2-set-password 是部分发行版提供的封装脚本,交互式读取密码后生成 PBKDF2 哈希,并写入 GRUB 的密码文件(RHEL 系通常为 /boot/grub2/user.cfg,内容形如 GRUB2_PASSWORD=grub.pbkdf2.sha512...)。它省去了手工拼接哈希的步骤。
该命令并非上游 GNU GRUB 的标准工具,不同发行版的可用性与行为可能不同:有的系统只提供 grub2-setpassword,有的需要自行用 grub-mkpasswd-pbkdf2 生成哈希。执行前先确认命令是否存在(command -v grub2-set-password),不存在时按“实例”中的手工方案处理。
密码保护只能阻止在引导菜单上编辑内核参数或进入单用户模式,不能替代磁盘加密;能物理接触机器的人仍可拆盘读取数据。
语法
grub2-set-password [选项]
选项
该脚本选项很少,通常没有额外参数,直接运行后按提示输入两次密码。部分版本支持:
-h/--help:显示帮助-v/--version:显示版本
实例
# 先确认命令存在
command -v grub2-set-password
# 交互式设置密码
sudo grub2-set-password
# 查看生成的结果文件
sudo cat /boot/grub2/user.cfg
# 手工方案:生成哈希
sudo grub2-mkpasswd-pbkdf2
# 把输出写入 user.cfg
echo 'GRUB2_PASSWORD=grub.pbkdf2.sha512.10000....' | sudo tee /boot/grub2/user.cfg
sudo chmod 600 /boot/grub2/user.cfg
# 重新生成配置使其生效
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
修改后建议重启验证;若忘记密码,可从救援介质启动并删除 user.cfg 或还原备份。RHEL 系在启用 Secure Boot 时,还要注意 GRUB 配置与 shim 的一致性。