Невозможно редактировать принадлежащие группе файлы как пользователя, принадлежащего к этой группе
Я использую сервер 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. Вот шаги, за которыми я следовал:
Предоставить доступ на запись к группе, связанной с файлом в
/var/www/htmlsudo 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)
Тем не менее, когда я тогда попытался обновить style.css без sudo со мной myuser аккаунт, я получил permission denied ошибка.
Решение
Я должен был выйти и снова войти в систему со всех сеансов, которые были зарегистрированы как myuser до того, как новые разрешения начали вступать в силу. Не уверен почему, но надеюсь, что это может помочь кому-то еще в подобной ситуации.