web-dev-qa-db-ja.com

そのグループに属するユーザーとしてグループ所有のファイルを編集することはできません

Digital OceanでUbuntu 14.04.1 LTSサーバーを実行しています。 rootになる必要なしに、通常のユーザーアカウントから/srv/wwwのファイルを編集できるようにしようとしています。

現在、/srv/wwwwww-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 {} \;

そして、ユーザーsheawww-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-datasheaのユーザーは両方とも/srv/wwwにアクセスできますか?両方のユーザーをグループに追加するとうまくいくという印象を受けましたが、うまくいかないようです。

7
shea

書き込みではなくグループ読み取りである644を設定しています!

Sudo chown -R www-data:www-data /srv/www
Sudo chmod -R g+w /srv/www
13
anu

DigitalOceanで16.04を実行中に同様の問題が発生しました。私が従った手順は次のとおりです。

  1. /var/www/htmlの下のファイルに関連付けられたグループへの書き込みアクセス権を付与します

    Sudo find /srv/www/ -type f -exec Sudo chmod 664 {} \;
    
  2. myuserwww-dataグループに追加します。

    Sudo adduser myuser www-data
    
  3. 許可を確認します、例:

    ls -la /var/www/html/wp-content/themes/responsive/style.css
    

    与える

    -rw-rw-r-- www-data www-data 3892 Jan  1 2017 style.css
    
  4. グループメンバーシップを確認:id myuserが与える

    uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),33(www-data),110*lxd)
    

ただし、Sudoアカウントを使用してmyuserなしでstyle.cssを更新しようとすると、permission deniedエラーが発生しました。

解決

新しい権限が有効になる前に、myuserとしてログインしたすべてのセッションからログアウトし、再度ログインする必要がありました。理由は定かではありませんが、これが同様の状況にある他の人の助けになることを願っています。

7
morphatic