相关疑难解决方法(0)

如何在ubuntu上追踪php5-fpm umask设置的来源

我真的很感激在Ubuntu上追踪和诊断umask问题的任何帮助:

我正在php5-fpm使用Apache 运行proxy_fcgi.该进程使用0022的umask运行(通过让PHP将结果发送umask()到文件[结果为'18'== 0022]确认).我想将其更改为0002,但无法追踪umask的来源.

使用umask 0002设置Apache,作为测试,如果我禁用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 0002start-stop-daemon调用中/etc/init.d/php5-fpm
  • 添加umask 0002到用户.profile的家中fpm

有些东西显然正在调整php-fpm进程的umask - 所以,我怎样才能开始跟踪强制umask 0022进入php-fpm进程的内容?

编辑(1):

  • 调整系统范围的umask via /etc/login.defs(请参阅如何设置系统范围的umask?)会影响其他地方的umask(例如,sudo现在的comannds 有一个0002的umask),但是php-fpm仍会创建一个umask为0022的文件.请注意,我验证了session optional pam_umask.so也出现了/etc/pam.d/common-session-noninteractive,我测试了002和0002的umasks.

编辑(2):

  • 我已经能够使用nginx和复制问题php5-fpm(使用unix套接字设置为监听模式'0666').
  • 我很想跟踪umask的来源,但我会选择某种方式来强制它达到我想要的效果.
  • 我应该补充说,第一次测试是在Amazon Ubuntu 13.10映像上完成的.我在"编辑2"中的测试,在虚拟机中使用Ubuntu13.10服务器ISO设置的副本完成.所有安装都是通过apt-get完成的,而不是通过下载源和构建来完成的.

编辑(3): …

php apache ubuntu umask

13
推荐指数
2
解决办法
9766
查看次数

标签 统计

apache ×1

php ×1

ubuntu ×1

umask ×1