Я бы очень признателен за помощь в отслеживании и диагностике проблемы с umask на Ubuntu:
 Я запускаю php5-fpm с Apache через proxy_fcgi .  Процесс выполняется с umask 0022 (подтверждается тем, что PHP отправляет результаты umask() в файл [результат равен «18» == 0022]).  Я хотел бы изменить это на 0002, но не могу отследить, откуда идет umask. 
  Apache установлен с umask 0002, и в качестве теста, если я proxy_fcgi и запустил свой тест выше, я получаю файл с u + g, имеющий rw-доступ (и содержимое файла подтверждает umask как «2» == 0002). 
  Если я sudo -iu fpmuser и запустил umask результаты 0002. 
Системная информация:
До сих пор я пробовал следующее (каждый за которым следует перезапуск системы и повторный тест):
umask 0002 к началу /etc/init.d/php5-fpm --umask 0002 в вызовы start-stop-daemon в /etc/init.d/php5-fpm umask 0002 в .profile в доме пользователя fpm Что-то явно корректирует umask процесса php-fpm – так, как я могу начать отслеживать то, что заставляет umask 0022 на процесс php-fpm?
EDIT (1):
/etc/login.defs (см. Как установить ширину системы umask? ) влияет на umask в другом месте (например, comannds через sudo теперь имеют umask 0002), но все же php-fpm создает файлы с umask 0022. Обратите внимание, что я проверил, что session optional pam_umask.so также присутствовал в /etc/pam.d/common-session-noninteractive и я тестировал umasks из 002 и 0002. EDIT (2):
nginx и php5-fpm (используя unix-сокеты, установленные в режиме прослушивания '0666'). EDIT (3):
Я подтвердил, что могу вручную манипулировать umask одним из следующих (проверяется путем проверки разрешений на созданный файл теста):
  а.  В оболочке установите umask, затем запустите /usr/sbin/php-fpm из оболочки 
б. В оболочке запустите следующее с любым значением umask, которое мне нравится:
  start-stop-daemon --start --quiet --umask 0002 --pidfile /var/run/php5-fpm.pid --exec /usr/sbin/php5-fpm -- --daemonize --fpm-config /etc/php5/fpm/php-fpm.conf 
  Однако эта точная команда в файле /etc/init.d/php5-fpm не позволяет настроить umask при запуске sudo service php5-fpm stop; sudo service php5-fpm start  sudo service php5-fpm stop; sudo service php5-fpm start или при перезагрузке. 
Не решение для общей трассировки, где параметры umask исходят из ubuntu (единственный способ, который я нашел до сих пор, – это старый добрый подход к тиражированию проблемы, попытка изолировать его от скрипта или функции, а затем отступить через каждый скрипт / функцию, которая называется рекурсивно), но решение проблемы с php5-fpm umask . Я нашел много хитов в google, stackoverflow и в других местах для проблемы, но до сих пор нет решения. Надеюсь, это полезно людям.
  Измените /etc/init/php-fpm.conf чтобы включить строку umask 0002 (или любой другой желаемый объект).  Моя версия файла теперь выглядит так: 
 # php5-fpm - The PHP FastCGI Process Manager description "The PHP FastCGI Process Manager" author "Ondřej Surý <ondrej@debian.org>" start on runlevel [2345] stop on runlevel [016] ### my edit - change umask setting umask 0002 pre-start exec /usr/lib/php5/php5-fpm-checkconf respawn exec /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf 
объяснение
  Проследив через команду service которая запускает php5-fpm при запуске, она запускает некоторые проверки (строка 118 на моей копии) для /etc/init/${SERVICE}.conf , а также проверяет, что initctl присутствует и может сообщить о своей версии.  Если эти тесты пройдены, используется upstart которая в случае php5-fpm использует файл /etc/init/php-fpm.conf . 
Сайт ubuntu upstart дает довольно четкие инструкции. В частности, вы можете ознакомиться с кулинарной книгой с выдержкой, которая вам нужна.
  Насколько я могу это понять, это означает, что поэтому команда «service» никогда не запускала команды start-stop-daemon … найденные в /etc/init.d/php5-fpm поэтому мои предыдущие изменения не влияли.  Вместо этого он переходит к upstart (фактически initctl ), когда вы используете что-то вроде service php5-fpm start initctl service php5-fpm start и т. Д. 
  Аддон с 2016 года: 
  если вы используете systemd, а затем отредактируйте /lib/systemd/system/php5-fpm.service 
  И отредактируйте главу «Сервис»: 
 [Service] UMask=0002 
лучше скопировать сценарий systemd перед редактированием php5-fpm.service или он будет перезаписан при следующем обновлении:
 cp /lib/systemd/system/php5-fpm.service /etc/systemd/system/ vi /etc/systemd/system/php5-fpm.service Add: UMask=0002 in [Service] section. systemctl daemon-reload systemctl restart php5-fpm 
Источник: https://ispire.me/running-php-fpm-with-different-user-group-using-umask/
okey, но это относится ко всем пулам. Было бы удобно, если бы можно было установить что-то вроде
env [umask] = 0002 (нет возможности для этого)
был googling, но, похоже, это не способ сделать это на основе каждого хозяина.