Dans le cas de serveur Apache mutualisé, il doit être interdit à l'utilisateur d'accéder aux donner des autres utilisateurs. Les processus Apache doivent aussi être différenciés.

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.