在我的项目中,我必须介绍一个新的‘非根’用户。我参考了下面链接中提到的标准yocto食谱模型,用于在/etc/passwd和/etc/group文件中创建用户和组条目。
我也在我的食谱文件中尝试了同样的方法。
recipes-connectivity/dibbler/dibbler_%.bbappend 食谱文件路径:
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'
。
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安装日志:
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...
如果有人指出我错过的东西或任何无关的/不必要的东西,那将是有帮助的。
发布于 2021-03-15 05:39:06
在分析rootfs日志(dev-/1.0-R0/temp/log.do_rootfs)之后,发现dibbler作为安装为两个不同的包,包名如下:
在将'USERADD_PARAM_${PN}'更改为'USERADD_PARAM_dibbler-client',之后,用户'dibbler‘的条目也被添加到rootfs中。
下面是bb食谱文件中的更改:
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"
https://stackoverflow.com/questions/66603390
复制相似问题