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