În primul rând, permiteți-mi să spun că chmod 777 nici măcar nu funcționează pentru asta (deși știu că nu ar fi soluția corectă).
Iată situația: am un server de e-mail care primește e-mail. Pe acel server există un cronjob care rulează un script .sh care mută fișierele de e-mail într-o partajare samba. Un server de aplicații separat (care este locul în care am problema) are, de asemenea, un cronjob care rulează un script .sh care mută acele fișiere de e-mail din partajare:
#!/bin/sh
if [ "$(ls -A /samba/rapoarte)" ]; atunci
mv /samba/reports/* /home/adam/dmarc/reports/mail
chown adam:adam /home/adam/dmarc/reports/mail/*
chmod 664 /home/adam/dmarc/reports/mail/*
fi
Toate acestea par să funcționeze bine. Rețineți, cronjob-ul este rulat ca root (este crontab-ul root). De asemenea, directorul „rapoarte” este montat ca volum în interiorul unui container php:apache Docker (-./reports:/var/www/reports:z). Fișierele sunt acolo și disponibile pentru a fi citite în container. Cu toate acestea, când folosesc php (invocat dintr-un script, nu apache) mi se refuză permisiunea de a redenumi/muta fișierele. Cu toate acestea, dacă încadrez fiecare fișier într-un fișier identic cu un nume diferit:
cat theProblemFile > noProblem
....atunci merge bine. Proprietarul/grupul și permisiunile sunt exact aceleași pentru ambele.
Există ceva în legătură cu faptul că fișierul a fost mutat dintr-o partajare Samba care îl face diferit? Ce se intampla aici? De asemenea, în ceea ce privește obținerea fișierelor de la serverul de e-mail la serverul de aplicații, există un mod standard/cele mai bune practici/preferat în industrie de a face acest lucru?
Mulțumiri