在Yocto食谱中设置新的用户权限

时间:2019-06-05 15:40:19

标签: yocto

我有一个添加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}}。知道为什么吗?

2 个答案:

答案 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进行更正