我正在Django的FCGI标准线运行的Django时:套接字权限FastCGI的
exec setuidgid $USERID $VENVBIN/python $WEBAPP/manage.py runfcgi daemonize=false socket=$FCGISOCKET
问题是,只有组FastCGI进程和Web服务器之间共享,而不是用户 - 但组不具有写权限,由默认(修补程序正在手动运行chmod g + w)。
如何强制进程使模式为0770的套接字?
我正在Django的FCGI标准线运行的Django时:套接字权限FastCGI的
exec setuidgid $USERID $VENVBIN/python $WEBAPP/manage.py runfcgi daemonize=false socket=$FCGISOCKET
问题是,只有组FastCGI进程和Web服务器之间共享,而不是用户 - 但组不具有写权限,由默认(修补程序正在手动运行chmod g + w)。
如何强制进程使模式为0770的套接字?
./manage.py runfcgi help
说:
的umask = UMASK的umask daemonizing(默认022)时使用。
所以,你只需要运行:
./manage.py runfcgi socket=$FCGISOCKET umask=007
与模式0770插座将被创建。请注意,只有当守护程序设置为true(默认设置)时才会设置umask。
无法找到一种方法来做到这一点与fastcgi,添加os.fchmod在我的settings.py结束,这似乎使它的工作。仍然是一个可怕的黑客攻击,他们应该允许你在调用服务时设置它。
是的,使用类似的黑客,但我真的想避免它:] – Almad 2010-08-16 13:10:29
umask=
在与daemonize=false
一起运行时不起作用。在这种情况下,它只会使用您当前的操作系统umask,因此在您的脚本之前运行umask 0007
。
我试过各种umask设置,但它们都为我创建srwxr-xr-x权限: -/ – Almad 2010-11-28 18:23:34
你确定你没有尝试用'daemonize = false'运行它? – 2010-11-28 22:10:47
你说得对,我看不懂。然而,daemonize = true阻止我使用daemontools来监督进程......有什么方法可以使用umask吗? – Almad 2010-11-30 22:31:16