我有一个添加inherit useradd
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "-P foo -u 1000 -d /home/foo -r -s /bin/bash foo;"
LICENSE = "CLOSED"
do_install () {
install -d ${D}/data/docker
install -d ${D}/home/foo
chown -R foo ${D}/home/foo
chown -R foo ${D}/data/docker
}
FILES_${PN} = " \
/home/foo \
/data \
"
用户的方法:
data/docker
出于不明原因,/home/foo
由foo拥有,但不属于{{1}}。知道为什么吗?
答案 0 :(得分:0)
实际上,您不需要安装/home/foo
(也不需要chown),因为该任务应该已经由useradd完成,因此可以删除这些命令。但是,您可能需要按以下步骤修改配方:
do_install () {
install -d -m 755 ${D}${datadir}/foo
install -d -m 755 ${D}/data/docker
chown -R foo ${D}${datadir}/foo
chown -R foo ${D}/data/docker
}
FILES_${PN} = "${datadir}/foo/* /data/docker/*"
答案 1 :(得分:0)
因此,原因是另一个配方首先在主目录中创建一个子文件夹,并且默认情况下由root拥有。
烘焙添加用户的配方时,已经使用根权限创建了主文件夹。
我的解决方案是在添加用户的配方中添加此文件夹的创建。
感谢@danior进行更正