Права доступа к файлам для среды общего хостинга
Я пытаюсь настроить среду общего хостинга, где пользователям предоставляется доступ SFTP к одной или нескольким папкам. Рассмотрим следующий сценарий:
/var/www/
содержит несколько каталогов, которые представляют домены. Пользователи могут добавлять, изменять или удалять файлы в каталогах на основе ACL, поэтому пользователь john
может иметь полный доступ к /var/www/domain1.com
а также /var/www/domain2.org
но нет /var/www/domain3.de
, В то же время, конечно, веб-сервер должен иметь возможность читать файлы во всех каталогах.
Что я не до конца понимаю, так это как обезопасить все таким образом, чтобы
- все пользователи заключены в тюрьму
/var/www/
и видеть только домены (подпапки), которые им разрешено видеть - пользователь Apache
www-data
имеет доступ только для чтения ко всем папкам - PHP имеет доступ на запись к некоторым папкам, таким как пользовательская папка загрузки или папка журнала в
/var/www/domain/
- новые файлы, загруженные через SFTP, автоматически получают правильные разрешения, и пользователь может указать, какая папка доступна для записи в PHP, не будучи доступной другим пользователям общего хостинга.
Под PHP я имею в виду экземпляр PHP-FPM, где каждый домен является отдельной записью в pool.d
и пользователь свободно настраивается.
Мои идеи до сих пор заключались в том, чтобы добавить группу под названием sftp
и настроить sshd
сажать в тюрьму пользователей, принадлежащих к группе sftp
в /var/www/
, разрешите для них аутентификацию по паролю и добавьте ForceCommand internal-sftp
, Тогда я бы установил ACL по умолчанию рекурсивно для папок внутри /var/www/
так что нужные пользователи имеют доступ к нужным каталогам. Но что я могу назначить владельцем и группой для папок? Нужно ли корректировать умаск? Каков подходящий пользователь и группа для соответствующего экземпляра пула PHP-FPM?