Si nous vérifions la propriété du site1, nous trouverons quelque chose comme ceci,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Cela signifie que le répertoire est détenu par l'utilisateur root, groupe root. Alors que l'utilisateur root a la permission d'écriture (plus les permissions de lecture et d'exécution) sur le répertoire, le groupe root a seulement les permissions de lecture et d'exécution.
Nous voudrons changer la propriété du groupe vers un autre groupe (nouveau) et ajouter l'utilisateur1 à ce groupe particulier. Nous donnerons également la permission d'écriture à ce groupe particulier.
Créer un nouveau groupe,
sudo addgroup site1
Ajouter l'utilisateur1 au groupe nouvellement créé,
sudo adduser user1 site1
Vérifier que l'utilisateur1 est bien dans ce groupe,
groups user1
La sortie devrait être une liste quelque chose comme,
user1 : site1
Maintenant, nous pouvons changer la propriété du groupe de votre répertoire prévu.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Accorder la permission d'écriture à ce nouveau groupe propriétaire,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Vérifier que tous les changements sont effectivement là,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Ainsi, le répertoire est maintenant détenu par l'utilisateur root, groupe site1. Tant l'utilisateur root que le groupe site1 ont la permission d'écriture (plus les permissions de lecture et d'exécution) sur le répertoire. Tout utilisateur appartenant au groupe site1 bénéficiera de tous les privilèges accordés à ce groupe.
Maintenant connectez-vous en tant qu'utilisateur1, déplacez-vous vers le répertoire site1 et essayez de créer un fichier dans ce répertoire,
echo "Mon Site Utilisateur1" > index.html
bash: index.html: Permission denied
Cela a échoué car très probablement le groupe principal de l'utilisateur1 n'est pas site1. Changez donc pour ce groupe.
newgrp - site1
Essayez de recréer le fichier (attention, vous avez été déplacé dans le répertoire personnel de l'utilisateur1 après avoir changé de groupe), cela devrait fonctionner maintenant. Puisque les fichiers créés auront la permission de lecture universelle, apache (ou votre serveur web) ne devrait pas rencontrer de problème pour y accéder.
EDIT
Aussi, comme signalé par dan08 en commentaire, vous devez ajouter www-data au groupe site1.
sudo adduser www-data site1
Sur de nombreuses (mais pas toutes) distributions, www-data est l'utilisateur sous lequel le serveur web Apache fonctionne. Cela signifie également que tout ce que fait Apache (surtout y compris les scripts PHP) sera fait avec les permissions de l'utilisateur www-data (et aussi du groupe www-data) par défaut. WordPress utilise l'utilisateur www-data pour écrire des fichiers.
Si vous voulez voir comment le serveur web apache fonctionne, exécutez la commande,
ps aux | grep apache2 | less