SELinux Centos Symfony 和 Docker - 文件权限

SELinux Centos Symfony 和 Docker - 文件权限

我正在尝试按照 Symfony 权限指南使用以下命令更改 docker 容器中两个文件的权限docker-compose exec

docker-compose exec --user root fpm sh -c "setfacl -dR -m u:www-data:rwX -m u:root:rwX var"

docker-compose exec --user root fpm sh -c "setfacl -R -m u:www-data:rwX -m u:root:rwX var"

但我得到的答复是:

setfacl: var: Permission denied

根据https://docs.docker.com/compose/reference/exec/我可以将--privileged选项传递给“授予进程扩展权限。”这似乎没有效果。

我如何 sudo 此命令?

答案1

TL;DR:SELinux 不适用于 Centos 7.3 上的 docker。

原来是 SELinux 拒绝访问该文件。我使用以下命令检查了 var/ 目录中的 SELinux 标签:

ls -latZ

返回:

drwxrwxr-x+ user user unconfined_u:object_r:httpd_sys_rw_content_t:s0 logs
drwxrwxr-x+ user user unconfined_u:object_r:httpd_sys_rw_content_t:s0 cache

这些都是正确的(参见httpd_sys_rw_content_t部分)

在此了解有关 SELinux 的更多信息(易于阅读且具有视觉效果):https://opensource.com/business/13/11/selinux-policy-guide

因此我尝试使用以下命令启用 SELinux docker 模块:

semodule -v -e docker

失败原因:

Re-declaration of type docker_t
Failed to create node
Bad type declaration at /etc/selinux/targeted/tmp/modules/100/docker/cil:1
semodule:  Failed!

搜索了错误中的“错误类型”部分,并在 github 上找到了该错误: https://github.com/moby/moby/issues/28406

要查找您的版本号,请执行以下操作:

cat /etc/centos-release

相关内容