Я использую supervisord для обработки некоторых процессов wsgi на основе gevent, которые просто запускают приложение django.
Когда я загружаю файлы, я хочу, чтобы у них были разрешения rw для пользователя и группы (www-data), и, конечно же, я хочу, чтобы папки имели разрешения на выполнение для пользователя и группы.
Обычно umask вычитается из 777 для папок, но из 666 для файлов, однако я обнаружил, что установка umask в конфигурации супервизора приводит к тем же разрешениям для файлов и папок, поэтому, когда я устанавливаю umask на 002, все загруженные файлы получают разрешения на выполнение . Я также попытался установить umask на 113, но тогда я не могу запускать никакие папки.
Я не уверен на 100%, что это ошибка супервизоров, а не gevent или django. Любые идеи?
Я сразу обнаружил, что виноват django.
После установки FILE_UPLOAD_PERMISSIONS в настройках приложений django на 0664 umask работает должным образом.
т.е. в settings.py:
FILE_UPLOAD_PERMISSIONS = 0664