Помогите решить головоломку. Нужно получить доступ к файлам и папкам, а также право на создании папок и файлов в /var/www. В связи с этим, нашел два решения:
1 решение:
Для начала создай группу: sudo groupadd groupname
Затем добавь себя в эту группу: sudo gpasswd -a username groupname
После чего дай созданной группе права на запись в каталог: sudo chown -R root:groupname /var/www sudo chmod 775 /var/www
2 решение:
- добавить юзера в группу www-data
- сделать владельцем /var/www/site - user:www-data
- дать юзеру права на чтение/запись, группе на запись в некоторые директории, которые требует та или иная ЦМС
- итоговые права будт иметь вид 770/660
Просто хочу с самого начала сделать все правильно. Как по мне, первый вариант больше имеет право быть.
На моей системе вопрос решен ещё проще: веб-сервер запускается от имени моего пользователя и его группы (Apache2, Nginx, php-fpm).
Соответственно автоматически решены все вопросы с правами на файлы и папки (включая те, которые создаются кодом в процессе работы), но нужно четко осознавать чем это чревато в плане безопасности и не запускать сомнительный код.
Вот оно как, понятно, я так далеко заходить не буду, а если выбирать из высшеизложеных решений, то я выбираю второе, так как не понимаю как будет обращаться сервер и php к сайту, если отсутствует группа www-data.
Спасибо за ответ.
Сергей Бурдужа, группу можно задать вручную при необходимости.
Для Apache2 в /etc/apache2/envvars, для Nginx в /etc/nginx/nginx.conf и для php-fpm в /etc/php/7.1/fpm/pool.d/www.conf (или какая там у вас версия установлена)