首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bitbake不更新/etc/passwd和/etc/组目标rootfs中的用户和组条目

Bitbake不更新/etc/passwd和/etc/组目标rootfs中的用户和组条目
EN

Stack Overflow用户
提问于 2021-03-12 16:12:01
回答 1查看 605关注 0票数 0

在我的项目中,我必须介绍一个新的‘非根’用户。我参考了下面链接中提到的标准yocto食谱模型,用于在/etc/passwd和/etc/group文件中创建用户和组条目。

https://git.yoctoproject.org/cgit.cgi/poky/tree/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb

我也在我的食谱文件中尝试了同样的方法。

recipes-connectivity/dibbler/dibbler_%.bbappend 食谱文件路径

代码语言:javascript
运行
复制
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

#dibbler process non-root user
SRC_URI += "file://dibbler-nonroot-changes.patch"

inherit useradd

USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "--system dibbler"
USERADD_PARAM_${PN} = "--system --gid dibbler --no-user-group \
                       --home /var/lib/dibbler --no-create-home \
                       --shell /bin/false dibbler"

在构建组件之后,在目标rootfs 'tmp/work/brcm-linux-gnueabi/generic-dev-image/1.0-r0/rootfs/etc/passwd‘中找不到用户'dibbler’和组'dibbler‘的条目

但是我发现sysroot路径中存在的条目是'tmp/sysroots/brcm/etc/passwd''tmp/sysroots/brcm/etc/group'

代码语言:javascript
运行
复制
tmp/sysroots/brcm/etc/group-
tmp/sysroots/brcm/etc/group
dibbler:x:983:

tmp/sysroots/brcm/etc/passwd-
tmp/sysroots/brcm/etc/passwd
dibbler:!:988:983::/var/lib/dibbler:/bin/false

甚至我也检查了日志并运行了来自bitbake任务的脚本,比如do_install,do_populate_package,……我没有任何线索继续前进。

清理重建后的Bitbake安装日志:

代码语言:javascript
运行
复制
Install outputs from file : tmp/work/cortexa15hf-neon-vfpv4-rdk-linux-gnueabi/dibbler/1.0.1-r0/temp/log.do_install
DEBUG: Executing shell function useradd_sysroot
NOTE: dibbler: Performing groupadd with [--root /home/vre/dmz/build-tch_broadband_93390smwvg2/tmp/sysroots/brcm93390smwvg2 --system dibbler]
NOTE: dibbler: Performing useradd with [--root /home/vre/dmz/build-tch_broadband_93390smwvg2/tmp/sysroots/brcm93390smwvg2 --system --gid dibbler --no-user-group                        --home /var/lib/dibbler --no-create-home                        --shell /bin/false dibbler]
Running groupadd commands...
Running useradd commands...

如果有人指出我错过的东西或任何无关的/不必要的东西,那将是有帮助的。

EN

回答 1

Stack Overflow用户

发布于 2021-03-15 13:39:06

在分析rootfs日志(dev-/1.0-R0/temp/log.do_rootfs)之后,发现dibbler作为安装为两个不同的包,包名如下:

  1. dibbler-client and
  2. dibbler-server.

在将'USERADD_PARAM_${PN}'更改为'USERADD_PARAM_dibbler-client',之后,用户'dibbler‘的条目也被添加到rootfs中。

下面是bb食谱文件中的更改:

代码语言:javascript
运行
复制
USERADD_PACKAGES = "dibbler-client"
GROUPADD_PARAM_dibbler-client = "--system dibbler"
USERADD_PARAM_dibbler-client = "--system --gid dibbler --no-user-group \ 
                                --home /var/lib/dibbler --no-create-home \
                                --shell /bin/false dibbler"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66603390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档