Le serveur mutualisé
L'astuce est d'utiliser le module Apache MPM ITK. Celui-ci change l'utilisateur en fonction de son VirtualHost.
Cela impose les actions suivantes dans l'ordre :
- Créer L'utilisateur dans Linux. Le homedir sera le Document Root dans Apache
- Limiter l'accès à l'utilisateur : chmod 700 /home/USER
- Créer le VirtualHost Apache
- Ajouter dans la configuration du VirtualHost la ligne :
AssignUserId USER USER- Le DocumentRoot doit être défini à la valeur du homedir de l'utilisateur :
DocumentRoot /home/USER
Le directory listing de /home peut être bloqué : chmod 744 /home (seul root peut voir les utilisateurs).
A partir de ce point, c'est l'utilisateur qui exécute les scripts PHP, et plus www-data. Du coup, la création de fichiers est faite sous l'utilisateur.