grub2-mkpasswd-pbkdf2 - 它可以接受标准输入吗?

Pan*_*cho 1 security redhat grub centos grub2

在 CentOS 6 上,我们目前使用该选项加密 grub 密码password --md5,并且可以将其编写到我们的标准服务器构建中。

我们正忙于迁移到 CentOS 7,看来该password --md5选项已在 grub2 中删除并替换为grub2-mkpasswd-pbkdf2.

尽管我欢迎安全性的提高,但我找不到grub2-mkpasswd-pbkdf2通过标准输入将密码传递给命令的方法,而且 grub2 似乎已经删除了对 md5 的支持,这两者的结合破坏了我们的脚本构建自动化。

任何人都可以帮忙:

  1. 一种通过标准输入传递密码的方法grub2-mkpasswd-pbkdf2?或者
  2. 接受标准输入的替代 pbkdf2 生成实用程序grub2-mkpasswd-pbkdf2?或者
  3. 与 grub2 一起使用的机制--md5

Ger*_*erg 8

grub-mkpassswd-pbkdf2从 stdin获取密码(两次) 。

如果您的密码位于$passwd

passwd="my test password"
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式获取哈希值:(使用 bash 作为 shell)

echo -e "$passwd\n$passwd" | LC_ALL=C /usr/bin/grub-mkpasswd-pbkdf2 | awk '/hash of / {print $NF}'
Run Code Online (Sandbox Code Playgroud)

AWK 打印与给定模式匹配的行的最后一个字段,即哈希值。区域设置被强制为默认区域设置 ( C),以防消息在其他区域设置中被翻译。