我正在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