Не знаю почему, но люди, похоже, увлечены идеей использования www-data
как группа для всех сайтов на сервере. Я бы хотел разделить все сайты по разным пользователям. Например, jaap.nl
есть пользователь и группа jaap:jaap
. Пользователь NGINX nginx
является частью jaap
группа и имеет доступ для чтения. PHP-FPM работает с jaap:jaap
и, следовательно, имеет доступ для чтения и записи.
Пока это работает хорошо, но я хотел бы иметь возможность scp
или rsync
файлы на сервер через мою общесистемную учетную запись SSH. Решения:
jaap
группа, набор g+w
и g+s
для всех файлов для jaap.nl
но сейчас scp
создаст файлы с именем пользователя моей учетной записи SSH ... но, может быть, это не так уж и плохоjaap
кажется чище, но это откроет множество учетных записей, доступных для входа в SSH, и мне нужно будет настроить chroot для всех из нихНикогда раньше не использовал ACL, но сейчас было хорошее время познакомиться с ними. У меня это работает следующим образом:
jaap:jaap
изначально владеет всеми файлами, где nginx
а является членом jaap
группа. Разрешения 750
для справочников и 640
для файлов, поэтому nginx
имеет доступ только для чтения. Поскольку пулы PHP-FPM запускаются от имени пользователя jaap
у них есть доступ на запись.u:piet:rwx,d:u:piet:rwx,m:rwx
для справочников и u:piet:rw,m:rw
для файлов. Вот piet
- пользователь SSH, которому требуется доступ для чтения и записи. Новые файлы и каталоги добавят piet
в ACL.g+s
во всех директориях мы гарантируем, что новая группа файлов / каталогов всегда будет jaap
, так что nginx
имеет доступ для чтения и jaap
сам может читать файлы. Вы также можете исправить это с помощью ACL.Спасибо @Michael Hampton