Назад | Перейти на главную страницу

umask для пользователя www-data, использующего PHP в Ubuntu

Настройка нового веб-сервера в Ubuntu 14.04 и попытка разобраться с правами доступа к файлам, созданным PHP.

По умолчанию все каталоги и файлы в /var/www принадлежат / сгруппированы в www-admin. Разрешения каталога rwxrwsr-x и права доступа к файлам rw-rw-r--.

Затем мы устанавливаем группу на ограниченное количество каталогов в www-data - это так, чтобы PHP (через Apache) мог записывать файлы журнала и кеширования в это место.

Однако я не могу заставить PHP подчиняться umask 0002, поэтому файлы, созданные PHP, доступны для записи только пользователю www-data. Это проблема, поскольку мы используем непрерывную интеграцию и некоторые другие процессы очистки.

Пока у меня есть:

И я все еще застрял.

Остановил / запустил сервис и даже перезапустил компьютер - без радости.

"umask 002" в / etc / apache2 / envvars должен работать.

Обратите внимание, что Apache должен быть перезапущен с помощью команды «остановка службы apache2; запуск службы apache2», а не «перезапуск службы apache2»!

См. Здесь, если вам нужен более подробный образец: https://serverfault.com/a/384922/228027

Проблема в том, что файлы создаются PHP-FPM. Это родительский процесс, а не apache2. Единственный способ исправить это - добавить umask в /etc/init/php7.1-fpm.conf. Затем перезапустите PHP-FPM.

Связанная ветка: Настройка umask для nginx / php-fpm.

Если вы запускаете несколько сайтов, вы можете установить разрешение группы по умолчанию, используя списки управления доступом (ACL) для каждого каталога следующим образом:

Устанавливать setid флаг, чтобы заставить все новые файлы наследовать группу из каталога:

root@sh1:/srv/www/php/fastwarren.ca# chmod g+s wordpress

Сделайте новые файлы rw для групповых разрешений, например. так что www-data может записывать в файлы, SFTP, загруженные пользователем:

root@sh1:/srv/www/php/fastwarren.ca# setfacl --default --modify group:rwx wordpress 

Убедитесь, что ACL такой:

root@sh1:/srv/www/php/fastwarren.ca# getfacl wordpress
# file: wordpress
# owner: carissacosgrove
# group: www-data
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

Создайте файл, чтобы убедиться, что он работает:

root@sh1:/srv/www/php/fastwarren.ca# ll test
-rw-rw-r-- 1 root www-data 0 Feb 17 01:09 test

Это не сработало для меня, пока я не понял следующее: плагин драйвера PDO SQLite для Wordpress создаст файл базы данных только с правом чтения группы.

Проверьте свое здравомыслие, используя сценарий создания отсюда: Как установить umask по умолчанию в Apache на Debian?.