如何在Debian上为php5-fpm设置umask?

Sil*_*ind 8 php debian nginx

我正在php5-fpmnginx通过端口连接(未插座).这是Debian Jessie的库存,所有软件包都通过安装apt-get.

我试图更改为www数据的用户默认的umask php5-fpm是从使用00220002允许组写权限.我试过了:

  • 编辑/etc/init.d/php5-fpminit脚本并添加--umask 0002start-stop-daemon调用,但它被忽略;
  • 添加umask 0002/var/www/.profile作为/var/www对主目录www-data的用户,但它并没有帮助(我并不感到惊讶).
  • 我没有使用,upstart所以这个解决方案不适合我.

此外,无论我尝试过什么,命令sudo -u www-data bash -c umask总是返回0022.

Sil*_*ind 4

我可以按照此处此处的php5-fpm建议编辑其unit.service文件来设置服务的 umask 。Debian 8 的完整且有效的解决方案是这样的:

  1. 手动编辑/etc/systemd/system/multi-user.target.wants/php5-fpm.service文件并在部分UMask=0002内添加行[Service]
  2. 运行命令systemctl daemon-reload
  3. 运行命令systemctl restart php5-fpm.service

现在服务文件如下所示:

[Unit]
Description = The PHP FastCGI Process Manager
After = network.target

[Service]
Type = notify
PIDFile = /var/run/php5-fpm.pid
ExecStartPre = /usr/lib/php5/php5-fpm-checkconf
ExecStart = /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf
ExecReload = /bin/kill -USR2 $MAINPID
; Added to set umask for files created by PHP
UMask = 0002

[Install]
WantedBy = multi-user.target
Run Code Online (Sandbox Code Playgroud)

注意:

  1. 您不能使用systemctl edit php5-fpm.service命令,因为版本 218edit中引入了选项systemctl,但 Debian 8 附带版本 215。
  2. *.conf按照此答案的评论中的建议添加文件对我来说不起作用,但也许我搞砸了一些东西(欢迎对此发表评论,因为编辑单元文件不是我觉得舒服的事情)。