Во-первых, позвольте мне сказать, что chmod 777 даже не работает для этого (хотя я знаю, что это было бы неправильным решением).
Вот ситуация: у меня есть почтовый сервер, принимающий почту. На этом сервере есть cronjob, который запускает сценарий .sh, который перемещает почтовые файлы в общий ресурс samba. На отдельном сервере приложений (где у меня возникла проблема) также есть cronjob, который запускает сценарий .sh, который перемещает эти почтовые файлы из общего ресурса:
#!/бин/ш
если [ "$(ls -A /samba/reports)" ]; тогда
mv /samba/reports/* /home/adam/dmarc/reports/mail
chown adam:adam /home/adam/dmarc/reports/mail/*
chmod 664 /home/adam/dmarc/отчеты/почта/*
фи
Все это, кажется, работает просто отлично. Обратите внимание, что cronjob запускается от имени пользователя root (это crontab пользователя root). Кроме того, каталог «отчеты» монтируется как том внутри контейнера php:apache Docker (-./reports:/var/www/reports:z). Файлы есть и доступны для чтения в контейнере. Однако, когда я использую php (вызывается из скрипта, а не apache), мне отказывают в разрешении на переименование/перемещение файлов. Однако, если я привязываю каждый файл к идентичному файлу с другим именем:
cat theProblemFile > нет проблем
....тогда работает нормально. Владелец/группа и разрешения одинаковы для обоих.
Есть ли что-то в том, что файл был перемещен из общего ресурса Samba, что отличает его? Что здесь происходит? Кроме того, что касается передачи файлов с почтового сервера на сервер приложений, существует ли для этого отраслевой стандарт/лучшая практика/предпочтительный способ?
Спасибо