Я недавно купил VPS и многому у него научился. Мне удалось создать пользователя ftp, установить его как владельца корня документа моего сайта, добавить его в группу www-user, установить группу как группу корня документа и дать разрешения файлам 0775 (0664).
Мой вопрос: если www-data может получать доступ и изменять файлы в корне документа, не смогут ли сценарии с других сайтов также изменять эти файлы (которые теперь защищены от публики с помощью .htaccess)?
ПРИМЕЧАНИЕ. Я хочу, чтобы www-data имел доступ на запись, поскольку сценарии PHP должны иметь возможность изменять файлы.
Как решить эту проблему?
Чтобы решить эту проблему, вам пришлось запускать каждый экземпляр сайта с его собственными учетными данными, а не использовать www-data
.
При использовании apache
, ты можешь использовать apache-mpm-itk
и это AssignUserID
параметр для назначения определенного пользователя / группы каждому сайту / виртуальному хосту. С помощью этого метода оба apache
, php
, cgi
, ecc будет запущен с назначенными учетными данными.
Другой подход, специфичный для php, - suPHP
, который в основном запускает ваши php-скрипты с использованием определенных учетных данных пользователя / группы.
Я думаю, что лучше не позволять пользователю или группе Apache писать во всех корневых каталогах вашего документа. Используйте apache-mpm-itk / suPHP / mpm-peruser или нет, возможно, вам следует определить, какие файлы и каталоги Apache действительно нужно записать (для каждого сайта), и предоставить групповые разрешения на запись только для этих файлов / каталогов.