Я переношу сайт phpBB с общего сервера на VPS под управлением Ubuntu 20.04. Я настроил apache2 для виртуальных доменов, так как у меня их больше одного. Вот где платы:
/var/www/example1.com/public_html/phpbb
/var/www/example2.com/public_html/phpbb
Я хочу, чтобы был один пользователь «userA», который вносил изменения в оба сайта, поэтому я создал группу sftp «sftp_users» и добавил в нее пользователя A. Я также добавил пользователя A в группу www-data и изменил эту строку в envvars:
экспортировать APACHE_RUN_USER=www-данные
к этому:
экспорт APACHE_RUN_USER=пользовательA
example1.com принадлежит root:root, public_html — root:sftp_users, а phpbb и все, что ниже, рекурсивно — userA:www-data. Разрешения также были установлены рекурсивно — 755 для каталогов и 644 для файлов в соответствии с рекомендациями phpBB. И в соответствии с этими рекомендациями исключениями являются каталоги files, store, cache и images/avatars/uploads (все 777) и файл phpbb/config.php (640).
Плата вроде рабочая, однако делаю два замечания:
Члены правления могут загружать вложения. Однако, в отличие от файлов, которые я перенес с общего сервера, которые участники ранее загрузили, и владельцем которых я сделал userA:www-data, эти загруженные файлы показывают право собственности на www-data:www-data. (Это также относится к файлам и каталогам, которые PHP создает в кеше по запросу.) Изменение, которое я внес в envvars, похоже, не вступило в силу.
Права доступа к загруженным файлам — 666, а не 644, поскольку я установил портированные файлы (в соответствии с рекомендациями phpBB).
Я предполагаю, что хочу сделать что-то в соответствии с рекомендациями @Zoredache и @Tom здесь:
Каков наилучший способ обработки разрешений для пользовательских www-данных Apache 2 в /var/www?
Но если бы файлы принадлежали пользователю А, разве я не мог бы обойтись с рекомендуемыми правами доступа 644 вместо 664? Почему userA не является владельцем файла, и является ли umask 0022 ответом на принудительные разрешения?