Lorsqu'on installe apache sur un serveur, celui-ci fonctionne sous l'utilisateur www-data ou apache. Cela permet de limiter ses droits d'accès, ce qui est une sécurité pour le serveur, mais cela pose un problème pour les fichiers créés par le site ou envoyés par formulaire, car ils n'appartiennent pas au propriétaire du site.

Ceci fait que si l'on ne modifie pas les droits d'accès de l'utilisateur (par exemple en le mettant dans le même groupe qu'apache) ou les permissions par défaut des fichiers, le webmaster ne pourra pas détruire un fichier de son site si ce n'est pas lui qui l'a mis en ligne.

Heureusement, une solution existe, c'est de faire fonctionner chaque sous-processus d'apache en tant que propriétaire du site.

Pour ce faire, il suffit de déclarer dans les définitions des sites sous quel propriétaire et sous quel groupe le site doit s'éxecuter:

<VirtualHost *>
   ServerName server1
   AssignUserID user1 group1
</VirtualHost>
 
<VirtualHost *>
   ServerName server2
   AssignUserID user2 groips
</VirtualHost>