Невозможно редактировать принадлежащие группе файлы как пользователя, принадлежащего к этой группе

Я использую сервер Ubuntu 14.04.1 LTS в Digital Ocean. Я пытаюсь сделать так, чтобы я мог редактировать файлы в /srv/www из моей обычной учетной записи пользователя, без необходимости быть пользователем root.

В настоящее время, /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? У меня сложилось впечатление, что добавление обоих пользователей в группу поможет, но я не могу заставить ее работать.

2 ответа

Решение

Вы устанавливаете 644, который является групповым чтением, а не записью!

sudo chown -R www-data:www-data /srv/www
sudo chmod -R g+w /srv/www

У меня была похожая проблема при запуске 16.04 на DigitalOcean. Вот шаги, за которыми я следовал:

  1. Предоставить доступ на запись к группе, связанной с файлом в /var/www/html

    sudo find /srv/www/ -type f -exec sudo chmod 664 {} \;
    
  2. добавлять myuser к www-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)
    

Тем не менее, когда я тогда попытался обновить style.css без sudo со мной myuser аккаунт, я получил permission denied ошибка.

Решение

Я должен был выйти и снова войти в систему со всех сеансов, которые были зарегистрированы как myuser до того, как новые разрешения начали вступать в силу. Не уверен почему, но надеюсь, что это может помочь кому-то еще в подобной ситуации.

Другие вопросы по тегам