Linux 命令速查
系统管理 man grub2-mkpasswd-pbkdf2

grub2-mkpasswd-pbkdf2

生成 GRUB 使用的 PBKDF2 密码哈希

返回

补充说明

grub2-mkpasswd-pbkdf2 是 RHEL 系对 grub-mkpasswd-pbkdf2 的命名,用于把明文密码转换成 grub.pbkdf2.sha512.<迭代次数>.<salt>.<hash> 形式的字符串。GRUB 配置中只保存这个哈希,因此引导菜单密码不会以明文出现在 /boot 下。

典型用法是配置 GRUB 超级用户:在 /etc/grub.d/40_custom 中加入 set superusers="root" 与 password_pbkdf2 root <哈希>,然后运行 grub2-mkconfig 重新生成配置。也可以把哈希写入 /boot/grub2/user.cfg,供 RHEL 的密码管理命令使用。

命令会交互式读取密码并再次确认,密码不会回显。哈希中的 salt 与迭代次数每次随机生成;需要可重复结果时才用 -s、-c 手工指定,但这会降低安全性。

语法

grub2-mkpasswd-pbkdf2 [选项]

选项

  • -c 次数 / --iteration-count=次数:PBKDF2 迭代次数
  • -s 字符串 / --salt=字符串:指定 salt,默认随机生成
  • -l 长度 / --buflen=长度:派生密钥长度
  • -h / --help:显示帮助
  • -V / --version:显示版本

实例

# 交互式生成哈希
sudo grub2-mkpasswd-pbkdf2
# Enter password:
# Reenter password:
# PBKDF2 hash of your password is grub.pbkdf2.sha512.10000...

# 把哈希写入自定义配置
sudo tee -a /etc/grub.d/40_custom <<'EOF'
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.REPLACE_WITH_HASH
EOF

# 重新生成 GRUB 配置
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# 若使用 user.cfg,写入同样内容并保持权限 600
sudo chmod 600 /boot/grub2/user.cfg

superusers 中的用户只用于解锁菜单与编辑条目,不会影响系统登录密码。配置错误可能导致每次开机都要输密码或无法编辑内核参数,修改前建议备份原配置。

参考链接