Я бы очень признателен за любую помощь в поимке и диагностировать проблему UMASK на Ubuntu:Как отследить, где настройки UMASK php5-FPM приходят от на убунту
Я бегу 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.
Информация о системе:
- PHP: 5.5.3-1ubuntu2.1
- Apache: 2.4.6
- Ubuntu: 13.10
- PHP-PFM перечисляет порты TCP (поскольку порты Unix еще не работают/поддерживают)
До сих пор я попробовал следующее (каждый с последующим перезапуском системы и повторного тестирования):
- добавление
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?
РЕД (1):
- регулировка общесистемных бит полномочий через
/etc/login.defs
(см How to set system wide umask?) влияет на биты полномочий в другом месте (например, comannds черезsudo
теперь имеет биты полномочий в 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» слушать). - Мне очень хотелось бы проследить, откуда идет umask, но я бы согласился каким-то образом заставить его к тому, что я хочу.
- Я должен добавить, что первое испытание было выполнено на изображении Amazon Ubuntu 13.10. Мои тесты в «edit 2», где завершена копия Ubuntu13.10 установки ISO с нуля на виртуальной машине. Все установки были завершены с помощью apt-get, а не путем загрузки источника и здания.
EDIT (3):
Я подтвердил, что я могу манипулировать биты полномочий вручную либо из следующих (проверяется путем проверки разрешений на тестовый файл, созданный):
a. В оболочке установите umask, затем запустите
/usr/sbin/php-fpm
из корпусаb. В оболочке, выполните следующие действия с любым 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
не удается для настройки при запуске бит полномочийsudo service php5-fpm stop; sudo service php5-fpm start
или при перезагрузке.
Не проблема, которую я пытался решить, но мне понравился хорошо документированный вопрос и ответ. – berbt
Я борюсь с той же проблемой для Debian 8, однако она не использует выскочку. Любые подсказки для установки umask для php-fpm на Debian? – SiliconMind
@SiliconMind То же самое здесь. Вы нашли решение еще? – balu