Se controlliamo la proprietà di site1, troveremo qualcosa del genere,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Ciò significa che la directory è di proprietà dell'utente root, root del gruppo. Mentre l'utente root dispone delle autorizzazioni di scrittura (oltre alle autorizzazioni di lettura ed esecuzione) per la directory, il root di gruppo ha solo autorizzazioni di lettura ed esecuzione.
Vorremmo cambiare la proprietà del gruppo in un altro (nuovo) gruppo e aggiungere l'utente1 a quel particolare gruppo. Daremo il permesso di scrittura anche a quel particolare gruppo.
Crea un nuovo gruppo,
sudo addgroup site1
Aggiungi user1 al gruppo appena creato,
sudo adduser user1 site1
Verifica che user1 sia veramente in quel gruppo,
groups user1
L'output dovrebbe essere un elenco simile a
user1 : <other-groups> site1
Ora possiamo modificare la proprietà del gruppo della directory desiderata.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Concedi l'autorizzazione di scrittura a questo nuovo proprietario del gruppo,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Verifica che tutte le modifiche siano effettivamente presenti,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Quindi, la directory ora è di proprietà dell'utente root, gruppo site1. Sia l'utente root che il gruppo del sito1 dispongono dell'autorizzazione di scrittura (più autorizzazioni di lettura ed esecuzione) per la directory. Qualsiasi utente appartenente al sito del gruppo1 godrà di tutti i privilegi concessi a quel gruppo.
Ora accedi come user1, passa alla directory site1 e prova a creare un file in quella directory,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Ciò è fallito poiché molto probabilmente il gruppo primario di user1 non è site1. Quindi, passa a quel gruppo.
newgrp - site1
Prova a ricreare il file (attenzione che sei stato spostato nella directory home di user1 dopo aver cambiato gruppo), ora dovrebbe funzionare. Poiché i file creati avranno il permesso di lettura mondiale, apache (o il tuo server web) non dovrebbe avere alcun problema ad accedervi.
MODIFICARE
Inoltre, come sottolineato da dan08 nel commento, è necessario aggiungere i dati www al gruppo site1.
sudo adduser www-data site1
Su molte (non tutte) le distribuzioni, www-data è l'utente con cui viene eseguito il web server Apache. Ciò significa anche che tutto ciò che viene fatto da Apache (specialmente gli script PHP) verrà eseguito con le autorizzazioni dei dati www dell'utente (e anche dei dati www del gruppo) per impostazione predefinita. WordPress utilizza l'utente www-data per scrivere file.
Se vuoi vedere come funziona il web server apache, emetti il comando,
ps aux | grep apache2 | less