#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, что отличает его от других? Что здесь происходит? Кроме того, в вопросе передачи файлов с почтового сервера на сервер приложений существует ли стандартный для отрасли/наилучший/предпочтительный способ сделать это?
Спасибо