使用FastCGI运行Django时的套接字权限

2024-06-07 04:12:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我用标准线路运行Django fcgi:

exec setuidgid $USERID $VENVBIN/python $WEBAPP/manage.py runfcgi daemonize=false socket=$FCGISOCKET

问题是fastcgi进程和webserver之间只有组是共享的,而不是用户-但是默认情况下组没有写权限(hotfix手动运行chmodg+w)。在

如何强制进程在0770模式下制作插座?在


Tags: djangopyfalse标准manage进程webapp线路
3条回答

./manage.py runfcgi help说:

umask=守护进程时要使用的umask umask(默认022)。在

所以你只需要跑:

./manage.py runfcgi socket=$FCGISOCKET umask=007

将创建一个模式为0770的套接字。请注意,umask仅在daemonize设置为true(默认值)时设置。在

“找不到用fastcgi实现这个目标的方法,”a操作系统fchmod在我的最后设置.py这似乎让它成功了。这仍然是一个可怕的黑客攻击,他们应该允许你在调用服务时设置它。在

daemonize=false一起运行时,umask=不起作用。在本例中,它只使用当前的os umask,所以在脚本之前运行umask 0007。在

相关问题 更多 >