我尝试通过多种方法为 root 设置密码。到目前为止,没有什么对我有用。 我添加到 local.conf:
INHERIT += "extrausers"
EXTRA_USER_PARAMS = "usermod -P 'mypasswd' root;"
我还尝试使用“openssl passwd -6 -salt 12345 mypasswd”加密密码:
INHERIT += "extrausers"
EXTRA_USER_PARAMS = "usermod -p '\$6\$12345\$CdkMCUqHIe6eWfFhMIppyUE/S.iLGe.PACPivJhw05ideCyogNpnVNDIBSQXhSruJxfZCasTi6YvFOrPgFvM7/' root;"
我尝试了带有和不带有 EXTRA_IMAGE_FEATURES ?= "debug-tweaks" 的两种变体。我还尝试在 sources/meta-qoriq/recipes-kernel/linux/linux-qoriq.inc 中设置密码,它包含在内核配方“sources/meta-qoriq/recipes-kernel/linux/linux-qoriq_5.15 .bb”这样的“需要 linux-qoriq.inc”。 使用 EXTRA_IMAGE_FEATURES ?= "debug-tweaks" 设置,没有设置密码,没有它密码是错误的。 我还尝试使用 ROOTFS_POSTPROCESS_COMMAND 手动编辑 /ect/shadow 文件。因此,我在 sources/meta-qoriq/recipes-kernel/linux/linux-qoriq.inc 文件中添加了这一行,因为似乎无法将 bash 函数添加到 local.conf 文件中。
set_pw () {
encrypted=$(openssl passwd -6 -salt 12345 mypasswd)
sed -i "s/^root::/root:$encrypted:/" ${IMAGE_ROOTFS}/etc/shadow
}
ROOTFS_POSTPROCESS_COMMAND += "set_pw;"
这也没有用。 我的电路板是飞思卡尔 LS1046ARDB。这就是为什么我使用飞思卡尔的 linux qoriq 发行版。
编辑:
添加:
inherit fsl-utils
ROOTFS_POSTPROCESS_COMMAND += "set_pw;
我正在构建的图像的 .bb 文件 (sources/meta-qoriq/recipes-fsl/images/fsl-image-networking.bb) 并将 set_pw 函数添加到 sources/meta-qoriq/classes/fsl -utils.bbclass 文件对我有用。无法将 bash 函数直接添加到 fsl-image-networking.bb 文件中。 但我仍然想知道为什么
INHERIT += "extrausers"
EXTRA_USER_PARAMS = "usermod -P 'mypasswd' root;"
不工作。这就是它在其他一些帖子中的工作方式,例如这篇文章如何在 Yocto / Poky 图像上设置根密码?。 kirkstone 中这样做的语法有变化吗?
可能变量名打错了?正确的是
EXTRA_USERS_PARAMS
(注意用户的复数形式),见官方文档。
顺便说一句,这里讨论了最佳实践:How to securely update configuration for root password in yocto?
回答:
但我还是想知道为什么
INHERIT += "extrausers"
EXTRA_USER_PARAMS = "usermod -P 'mypasswd' root;"
不工作。这就是它在其他一些帖子中的工作方式,比如这个 如何在 Yocto / Poky 图像上设置 root 密码?。语法为 在柯克斯通做这件事改变了吗?
正如 Tomas 提到的,您需要使用 EXTRA_USERS_PARAMS。
我过去在 Yocto Sumo 上使用过纯文本密码,效果很好。现在我已经搬到 Kirkstone,我注意到它不是因为 usermod 已更改为不再接受明文密码。你必须给它传递一个加密的密码:
-p, --密码密码
由 crypt(3) 返回的加密密码。
另请注意,使用 -p 而不是 -P。
Yocto 手册提供了设置 root 密码 + 新用户的好例子。 在 Kirkstone 中使用 extrausers 的例子