site1の所有権を確認すると、次のようなものが見つかります。
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
これは、ディレクトリがユーザールート、グループルートによって所有されていることを意味します。ユーザールートにはディレクトリへの書き込み権限(および読み取りと実行の権限)がありますが、グループルートには読み取りと実行の権限しかありません。
グループの所有権を別の(新しい)グループに変更し、user1をその特定のグループに追加します。その特定のグループにも書き込み許可を与えます。
新しいグループを作成し、
sudo addgroup site1
新しく作成したグループにuser1を追加し、
sudo adduser user1 site1
user1が実際にそのグループに属していることを確認し、
groups user1
出力は次のようなリストになります。
user1 : <other-groups> site1
これで、目的のディレクトリのグループ所有権を変更できます。
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
この新しいグループ所有者に書き込み権限を付与し、
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
すべての変更が実際に存在することを確認し、
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
そのため、ディレクトリはユーザーroot、グループsite1によって所有されるようになりました。ユーザーrootとグループsite1の両方に、ディレクトリへの書き込み許可(および読み取りと実行の許可)があります。グループsite1に属するユーザーは、そのグループに付与されたすべての特権を享受できます。
ここで、user1としてログインし、site1ディレクトリに移動して、そのディレクトリにファイルを作成してみてください。
echo "My User1 Site" > index.html
bash: index.html: Permission denied
ほとんどの場合、user1のプライマリグループはsite1ではないため、これは失敗しました。そのため、そのグループに変更します。
newgrp - site1
ファイルを再作成してみてください(グループを変更した後にuser1のホームディレクトリに移動していることに注意してください)。これで動作するはずです。作成されたファイルには全世界の読み取り許可があるため、Apache(またはWebサーバー)がファイルにアクセスする際に問題が発生することはありません。
編集
また、dan08がコメントで指摘したように、www-dataをsite1グループに追加する必要があります。
sudo adduser www-data site1
多くの(すべてではない)ディストリビューションでは、www-dataはApache Webサーバーが実行されるユーザーです。これはまた、Apache(特にPHPスクリプトを含む)によって行われるすべてが、デフォルトでユーザーwww-data(およびグループwww-data)の権限で行われることを意味します。WordPressは、ユーザーwww-dataを使用してファイルを書き込みます。
Apache Webサーバーの実行状況を確認するには、コマンドを発行し、
ps aux | grep apache2 | less