Я пытаюсь изменить разрешения двух файлов в контейнере Docker, следуя руководству по разрешениям Symfony, используя команду 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 «Предоставить расширенные привилегии процессу». это, кажется, не имеет никакого эффекта.

Как мне выполнить эту команду?

1 ответ1

0

TL; DR: SELinux не работает с докером на Centos 7.3.

Это оказалось, что SELinux отказывает в доступе к файлу. Я проверил метки SELinux внутри моей директории var/ с помощью:

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 с помощью:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .