chown -R 在 Yocto-Project 配方中不起作用
chown -R not working in Yocto-Project recipe
抱歉,我的母语不是英语。
我正在尝试使用 Yocto-Project 配方文件安装我的 Web 应用程序。
PR = "r0"
PV = "1.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=d41d8cd98f00b204e9800998ecf8427e"
SRC_URI = "\
file://sources \
file://COPYING \
"
S = "${WORKDIR}"
do_install() {
install -d ${D}${localstatedir}/www
cp -r ${S}/sources/* ${D}${localstatedir}/www/
chown -R www-data:www-data ${D}${localstatedir}/www/
chmod -R 775 ${D}${localstatedir}/www/cgi-bin
}
但是 /var/www
仍然属于 root:root
而不是 www-data:www-data
希望的那样。
问题
那么我如何chown
/var/www
目录回溯到www-data:www-data
?
编辑
我看过以下演示文稿的第 9 页:https://wiki.yoctoproject.org/wiki/images/e/e6/Custom_Users_Groups_in_Yocto1.1.pdf .
我创建了这个食谱文件来模仿这个页面。
sudo chown -R wwwdata:wwwdata /var/www/ 使所需文件夹及其内部文件夹或文件的所有权递归
首先,chown
和 chmod
应该按照您使用它们的方式在 YP/OE 食谱中工作。
问题可能是您在命令的路径参数中遗漏了 /
。根据文档 [1] ${D}
没有尾随 /
.
因此以下应该有效:
do_install() {
install -d ${D}/${localstatedir}/www
cp -r ${S}/sources/* ${D}/${localstatedir}/www/
chown -R www-data:www-data ${D}/${localstatedir}/www/
chmod -R 775 ${D}/${localstatedir}/www/cgi-bin
}
(如果不是请 post 你的 bitbake 日志)
[1] https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#var-D