Как правильно настроить права на веб-сервере Ubuntu?
Здравствуйте! Помогите пожалуйста разобраться с правами доступа.
На сервере есть пользователь и группа server.
На сервере установлен nginx и все сайты лежат в каталоге /home/server/htdocs. Nginx работает под пользователем www-data. В группу server добавлен пользователь www-data. Также на сервере установлен proftpd, сайты работают на wordpress. Права на каталоги 755, на файлы 644.
Проблема заключается в следующем: wordpress при обновлении запрашивает логин-пароль от ftp (у меня ftp по ключу), а мне хотелось бы, чтобы он этого не делал. Это можно решить изменив владельца /home/server/htdocs на www-data:www-data, однако тогда по FTP я не могу изменять файлы, так как FTP пользователь это server.
Подскажите пожалуйста, как наиболее грамотно решить эту проблему, чтобы и WordPress обновлялся без запроса FTP пароля и по FTP можно было файлы спокойно изменять файлы.
Если за nginx стоит апач, то гуглить в сторону apache2-mpm-itk, если php-fpm, то запускать его от имени нужного юзера (server в данном случае). Соответсвенно, если нужны будут изолированные сайты, то апач\нгинкс запускается от уникального юзера для каждого сайта. И с фтп проблем не будет.
intelligence: Извините, возникла некоторая сложность. Дело в том, что на сайте еще используется fastcgi_cache и nginx сохраняет весь кэш в папку /home/server/nginx_cache под www-data:www-data. Очистка кэша в WordPress как я понял происходит средствами php, и теперь у php-fpm нет прав на удаление файлов из этой папки. Как быть в этой ситуации? Менять пользователя nginx?
WeReng как вариант - использовать решение ниже с добавлением юзера в группу, но лучше все-таки вынести кеширование вордпресса в предназначенное для этого место - memcached\redis\etc
intelligence: Еще раз спасибо вам! Решил проблему запустив nginx от пользователя сервер, чтобы кэш созданный nginx можно было удалять через php. Переопределение прав для кэша на запись не сработало, nginx создавал новые файлы кэша с новыми правами. Сейчас когда и nginx и php-fpm в одной группе все стало работать. Так же пришлось сменить владельца php7.0-fpm-sock в каталоге var/run. Не знаю насколько это все правильно конечно, но по другому не знаю как.
WeReng: немного костыльное решение :) чтобы не иметь проблем с сокетом, можно перевесить fpm на ip:port, хотя, сокет создается от имени и группы, которые прописаны в конфиге пула по следующим параметрам
listen.owner = www-data
listen.group = www-data
У вас для группы права на чтение. Добавьте прав на запись. И в группу server добавьте пользователя под которым заходите на proftpd.
Вообще, wordpress может обновляться и без ftp , если для www-data есть права на запись.