Yocto: добавление пользовательского пользователя в пользовательскую группу

Я создал пользовательскую группу, например, "grp1" в моем рецепте приложения "app.bb".

GROUPADD_PARAM_${PN} = "grp1"

Я пытаюсь добавить своего пользовательского пользователя, например: "user1" в эту группу "grp1" в "space.bb".

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

Сбой команды useradd: "useradd: группа 'grp1' не существует". Я также попытался добавить DEPENDS_${PN} = "app" в space.bb, но это не помогает.

Как я могу добавить своего пользовательского пользователя в свою пользовательскую группу по рецепту bitbake?

2 ответа

TL;DR:
Если вы можете переопределить все необходимые группы внутри вашего рецепта, поскольку их раньше не было, это работает нормально.


Я работаю с этим так:

Даже внутри твоего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"

Это вызывает некоторое дублирование, но в конце концов внутри самого дистрибутива все работает нормально и дублирования групп вообще нет.

другая возможная причина этой ошибки, если в каком-то рецепте используется

      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 команды

Другие вопросы по тегам