【问题标题】:Adding "libpam" to initramfs recipe removes password from "extrausers" config将“libpam”添加到 initramfs 配方会从“extrausers”配置中删除密码
【发布时间】:2022-01-21 20:56:40
【问题描述】:

我正在使用local.conf 文件中的以下内容为我的 linux 设置 root 密码:

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p '\$6\$...'"

正如预期的那样,这可以正常工作。

但现在,我发现在 linux 5.10 中,要对用户进行身份验证,我无法检查 /etc/shadow,而是需要使用 libpam 模块。因此,我执行以下操作将 libpam 添加到我的 linux 映像中:

  • 在我的 inramfs 配方中,我将 libpam 添加到 PACKAGE_INSTALL
  • DISTRO_FEATURES_append 中添加了pam

现在,当我刷新这个新图像时,root 用户没有任何密码。添加 libpam 会以某种方式删除使用 extrausers 设置的密码... 有没有办法使用 libpam 在图像中设置密码?还是在使用额外用户并将 libpam 添加到我的图像时我做错了什么?

【问题讨论】:

    标签: linux embedded-linux yocto


    【解决方案1】:

    由于我无法在这里和libpam 的 github 问题上得到答案,我放弃了尝试让 libpam 为我工作。

    我决定使用/etc/shadow 文件。我删除了extrausers,而是使用以下命令手动将密码设置到影子文件中:

    ROOTFS_POSTINSTALL_COMMAND += "set_root_password;"
    set_root_password () {
        sed -e "s/root::/root:\$6\$...:/" -i ${IMAGE_ROOTFS}/etc/shadow
    }
    

    现在我不需要使用libpam,并且可以继续使用影子文件向我的 redfish 服务器验证用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2020-05-23
      • 2012-08-27
      相关资源
      最近更新 更多