Недавно я купил 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 действительно нужно записать (для каждого сайта), и предоставить групповые разрешения на запись только для этих файлов / каталогов.