Права доступа к файлам для среды общего хостинга

Я пытаюсь настроить среду общего хостинга, где пользователям предоставляется доступ 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?

0 ответов

Другие вопросы по тегам