Разрешения сокета при запуске Django с FastCGI - PullRequest
3 голосов
/ 07 августа 2010

Я запускаю Django fcgi со стандартной строкой:

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

Проблема заключается в том, что только процесс совместно используется процессом fastcgi и веб-сервером, а не пользователем - однако группа не имеет разрешения на запись по умолчанию (исправление работаетchmod g + w вручную).

Как заставить процесс сделать сокет в режиме 0770?

Ответы [ 3 ]

4 голосов
/ 12 октября 2010

./manage.py runfcgi help говорит:

umask = UMASK umask для использования при демонизации (по умолчанию 022).

Так что вам просто нужно выполнить:

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

исокет с режимом 0770 будет создан.Обратите внимание, что umask устанавливается только в том случае, если для daemonize установлено значение true (по умолчанию).

1 голос
/ 03 июня 2016

umask= не работает при работе с daemonize=false.В этом случае он просто использует ваш текущий os umask, поэтому перед вашим скриптом запустите umask 0007.

1 голос
/ 13 августа 2010

не может найти способ сделать это с помощью fastcgi, добавил os.fchmod в конце моего settings.py, и это, кажется, заставляет его работать. все еще ужасный хак, и они должны позволить вам установить его при вызове сервиса.

...