Digital OceanでUbuntu 14.04.1 LTSサーバーを実行しています。 rootになる必要なしに、通常のユーザーアカウントから/srv/www
のファイルを編集できるようにしようとしています。
現在、/srv/www
はwww-data:www-data
が所有しています。
Sudo chown -R www-data:www-data /srv/www
また、すべてのファイルの許可を664
に、ディレクトリの許可を755
に設定しました。
Sudo find /srv/www/ -type f -exec Sudo chmod 644 {} \;
Sudo find /srv/www/ -type d -exec Sudo chmod 755 {} \;
そして、ユーザーshea
をwww-data
グループに追加しました。
Sudo adduser shea www-data
ただし、touch /srv/www/foo
を実行しようとすると、次のエラーが表示されます。
touch: cannot touch ‘/srv/www/foo’: Permission denied
Sudo
をそのコマンドの先頭に追加すると問題なく動作しますが、常にそうするのは避けたいです。さらに、SFTPでは機能しません。
所有者をshea:www-data
に変更すると、ファイルに書き込むことができますが、WordPressはプラグインとテーマを更新できません。
Sudo chown -R shea:www-data /srv/www
とにかくwww-data
とshea
のユーザーは両方とも/srv/www
にアクセスできますか?両方のユーザーをグループに追加するとうまくいくという印象を受けましたが、うまくいかないようです。
書き込みではなくグループ読み取りである644を設定しています!
Sudo chown -R www-data:www-data /srv/www
Sudo chmod -R g+w /srv/www
DigitalOceanで16.04を実行中に同様の問題が発生しました。私が従った手順は次のとおりです。
/var/www/html
の下のファイルに関連付けられたグループへの書き込みアクセス権を付与します
Sudo find /srv/www/ -type f -exec Sudo chmod 664 {} \;
myuser
をwww-data
グループに追加します。
Sudo adduser myuser www-data
許可を確認します、例:
ls -la /var/www/html/wp-content/themes/responsive/style.css
与える
-rw-rw-r-- www-data www-data 3892 Jan 1 2017 style.css
グループメンバーシップを確認:id myuser
が与える
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),33(www-data),110*lxd)
ただし、Sudo
アカウントを使用してmyuser
なしでstyle.css
を更新しようとすると、permission denied
エラーが発生しました。
新しい権限が有効になる前に、myuser
としてログインしたすべてのセッションからログアウトし、再度ログインする必要がありました。理由は定かではありませんが、これが同様の状況にある他の人の助けになることを願っています。