Bonjour et bienvenue,
Cela dépend quels fichiers. Tes développeurs vont en général produire deux types de fichiers:
* Les fichiers statiques, accédés directement par apache (donc avec l'utilisateur www-data)
* Les fichiers php, exécutés donc accédés par php-fpm (donc avec l'utilisateur de php-fpm)
Les développeurs peuvent éventuellement également produire et modifier les fichiers du disque local via le script php (pour permettre aux utilisateurs de poster des vidéos, des images, etc). Là encore, fonction du code, le fichier sera soit accédé directement par apache, soit transmis via le script php.
Ceci dit, une chose est immuable, c'est que ton serveur apache n'aura jamais à modifier les fichiers. Il n'y a que si tu déploies du webdav, du svn ou du git sur ton serveur que ce sera le cas, donc dans des cas très particuliers. Il n'y a pas de réponse unique, une pratique simple consisterait à faire un truc du genre:
* A chowner les fichiers statiques (qui n'auront jamais à être modifiés) par www-data:www-data, et chmoder en 0644 ou 0444
* A chowner les autres fichiers (scripts php et fichiers dynamiques) par php:php ou php:www-data et chmoder en 0644, voire si tu veux être plus précis:
** Fichiers de configuration des scripts php en php:php et 0440
** Scripts php en php:php et 0444
** Fichiers dynamiques en php:www-data et 0640 ou php:php et 0644
Idéalement il serait bien également d'isoler les vhosts les uns des autres mais cela demande plus de travail.
A défaut de politique, tout le /var/www/ en php:php et 0644, ça marchera dans tous les cas (apache pourra lire, php pourra écrire).
Il faut que les développeurs s'impliquent dans la définition de la politique de sécurité, qu'ils soient capables de dire exactement ce qu'ils ont besoin de faire dans leurs scripts, et interdire tout le reste.
NB: Je précise évidemment que ça ne marche que pour ton setup vu que tu utilises php-fpm.
Cordialement
Emmanuel Thierry