uWSGI下的Python创建具有错误权限的文件和目录

时间:2013-05-01 12:00:40

标签: python permissions nginx filesystems uwsgi

我是Python开发的新手。

我编写了一个小型Python Web应用程序,可以创建一些文件和目录。当我在命令行中运行它时一切正常。但是在uWSGI下,所有新文件都是-rw-rw-rw-模式,目录是drwxrwxrwx而不是-rw-rw-r--和drwxrwxr-x。

uWSGI配置是Ubuntu的默认配置,没什么特别的。 uWSGI app ini文件就像这样:

[uwsgi]
plugins=python

nginx配置就是这样:

server {

        listen 8080;

        access_log /path/to/logs/access.log;
        error_log /path/to/logs/error.log;

        location / {
                uwsgi_pass unix:/var/run/uwsgi/app/myapp/socket;
                include uwsgi_params;
                uwsgi_param UWSGI_PYHOME /path/to/myapp/.env/;
                uwsgi_param UWSGI_CHDIR /path/to/myapp/;
                uwsgi_param UWSGI_SCRIPT myapp;
        }

}

我猜问题是uWSGI配置不足,但我不知道自己要做什么。

1 个答案:

答案 0 :(得分:4)

这是由uWSGI的默认umask 000引起的,它将所有位保留在原位 - 这意味着文件的默认值为666或目录的默认值为777。

您可以通过将uWSGI配置文件中的umask选项设置为应删除的位来实现此目的。例如,要获得644/755,您将使用022的umask来清除组/其他的写标志(777-022 = 755,666-022 = 644)