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