簡體   English   中英

Bitbake 不更新目標 rootfs 的 /etc/passwd 和 /etc/group 中的用戶和組條目

[英]Bitbake not updating user and group entry in /etc/passwd and /etc/group of target rootfs

在我的項目中,我必須引入一個新的“非 root”用戶。 我參考了以下鏈接中提到的標准 yocto 配方 model,用於在 /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

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 中找不到用戶 'dibbler' 和組 'dibbler' 的條目,即 ' tmp/work/brcm-linux-gnueabi/generic-dev-image/1.0-r0/rootfs/etc/passwd '

但我發現 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

即使我檢查了日志並從 do_install、do_populate_package 等 bitbake 任務運行腳本......我也沒有任何線索可以繼續進行。

干凈重建后的 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...

如果有人指出我錯過的內容或任何無關/不必要的內容,那將很有幫助。

分析 rootfs 日志( dev-image/1.0-r0/temp/log.do_rootfs )后,發現 dibbler 安裝為兩個不同的包,package 名稱如下:

  1. dibbler-client 和
  2. 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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM