Centos 7 php:разрешение apache Запрещено при перемещении файла с контейнером Docker после перемещения в :z том из общей папки samba

#php #docker #centos7 #samba

Вопрос:

Во-первых, позвольте мне сказать, что chmod 777 даже не работает для этого (хотя я знаю, что это было бы неправильным решением).

Вот ситуация: у меня есть почтовый сервер, принимающий почту. На этом сервере есть cronjob, который запускает сценарий .sh, который перемещает почтовые файлы в общий ресурс samba. На отдельном сервере приложений (где у меня возникла проблема) также есть cronjob, который запускает сценарий .sh, который перемещает эти почтовые файлы из общего ресурса:

 #!/bin/sh

if [ "$(ls -A /samba/reports)" ]; then
mv /samba/reports/* /home/adam/dmarc/reports/mail
chown adam:adam /home/adam/dmarc/reports/mail/*
chmod 664 /home/adam/dmarc/reports/mail/*
fi
 

Кажется, все это работает просто отлично. Обратите внимание, что cronjob запускается от имени root (это кронтаб root). Кроме того, каталог «отчеты» монтируется как том внутри контейнера php:apache Docker (-./отчеты:/var/www/отчеты:z). Файлы находятся там и доступны для чтения в контейнере. Однако, когда я использую php (вызывается из скрипта, а не apache), мне отказывают в разрешении на переименование/перемещение файлов. Однако, если я сопоставлю каждый файл с идентичным файлом с другим именем:

 cat theProblemFile > noProblem
 

….тогда все работает нормально. Владелец/группа и разрешения абсолютно одинаковы для обоих.

Есть ли что-то в том, что файл был перемещен из общего ресурса Samba, что отличает его от других? Что здесь происходит? Кроме того, в вопросе передачи файлов с почтового сервера на сервер приложений существует ли стандартный для отрасли/наилучший/предпочтительный способ сделать это?

Спасибо