我正在使用标准行运行Django fcgi:
exec setuidgid $USERID $VENVBIN/python $WEBAPP/manage.py runfcgi daemonize=false socket=$FCGISOCKET
问题是只有组在fastcgi进程和webserver之间共享,而不是用户 - 但是默认情况下组没有写权限(hotfix正在手动运行chmod g + w)。
如何强制进程在0770模式下创建套接字?
答案 0 :(得分:4)
./manage.py runfcgi help
说:
umask =在守护进程时使用的UMASK umask(默认为022)。
所以你只需要运行:
./manage.py runfcgi socket=$FCGISOCKET umask=007
将创建一个模式为0770的套接字。请注意,仅当daemonize设置为true(默认值)时才会设置umask。
答案 1 :(得分:1)
找不到用fastcgi做这个的方法,在我的settings.py的末尾添加了一个os.fchmod,这似乎使它工作。仍然是一个可怕的黑客,他们应该允许你在调用服务时设置它。
答案 2 :(得分:1)
umask=
运行时, daemonize=false
不起作用。在这种情况下,它只会使用您当前的os umask,因此请在脚本之前运行umask 0007
。