Yocto:将自定义用户添加到自定义组

问题描述 投票:0回答:3

我创建了一个自定义组,例如“grp1”,在我的应用程序配方中说“app.bb”。

GROUPADD_PARAM_${PN} = "grp1"

我正在尝试将我的自定义用户添加到“space.bb”中的“grp1”组中,例如:“user1”。

USERADD_PARAM_${PN} = "-d ${localstatedir}/lib/space/ -s /bin/false -G grp1 -U user1"

useradd 命令失败:“useradd:组‘grp1’不存在”。 我也尝试过在 space.bb 中添加

DEPENDS_${PN} = "app"
,但没有帮助。

如何将自定义用户添加到 bitbake 配方中的自定义组?

yocto bitbake
3个回答
2
投票

TL;博士:
如果您可以重新定义配方中所有需要的组(因为它们以前不存在),那么它就可以正常工作。


我的工作方式是:

即使在您的

space.bb
中,我也重新定义了
app.bb
中的组,例如:

inherit useradd
...
# Forcing group from app.bb to exist here
GROUPADD_PARAM:${PN} = "grp1"

USERADD_PARAM_${PN} = "-d ${localstatedir}/lib/space/ -s /bin/false -G grp1 -U user1"

它会导致一些重复,但最终在发行版本身内部一切都工作正常,并且根本没有组重复。


0
投票

此错误的另一个可能原因,如果正在使用某些配方

inherit extrauser

而不是

inherit useradd

并在的帮助下添加相同的组grp1

EXTRA_USERS_PARAMS = "\
      useradd -p '' grp1; \
      groupadd grp1; \
      "

而不是经典

GROUPADD_PARAM_libAPP = "grp1"
USERADD_PARAM_libAPP = "--no-create-home --home /var/tmp --shell /bin/nologin --gid grp1 grp1"

将导致组grp1重复和useradd命令失败


0
投票

Paiusco 的答案通过修复缺失依赖的症状来起作用。

为了使其更清晰,请找出哪个配方创建了该组(例如,在所有 *.bb 文件中搜索组名称)。由于

useradd
需要该组存在,因此您的配方取决于首先运行的其他配方。

因此,添加到您的食谱中:

DEPENDS += "recipe-that-creates-the-group"

这应该以正确的方式修复它。有关更多信息,请阅读参考手册中有关取决于的部分。

© www.soinside.com 2019 - 2024. All rights reserved.