【发布时间】:2015-12-30 20:55:12
【问题描述】:
我有一个通过uwsgi 运行的Flask 应用程序,由nginx 提供服务,所有这些都由supervisord 控制
我已将/etc/supervisor.conf 中的user 参数设置为user=webdev
在../myapp/uwsgi_app.ini 和/etc/uwsgi/emperor.ini 中,我设置了uid=webdev 和gid=www-data
问题是,我的应用程序中存在权限问题。在我的一个视图中使用以下print 语句,我发现应用程序正在以root 运行。这会导致需要创建目录的函数调用出现问题。
以下所有打印语句都位于Flask 视图内。
print 'group!! {}'.format(os.getegid())
print 'user id!! {}'.format(os.getuid())
print 'user!! {}'.format(os.path.expanduser('~'))
结果...
group!! 1000
user id!! 1000
user!! /root
编辑:我添加了以下打印语句:
from subprocess import call
print 'here is user',
call('echo $USER', shell=True)
print 'here is home',
call('echo $HOME', shell=True)
打印出来
here is user root
here is home /root
在服务器的终端中,我输入$ id,我得到uid=1000(webdev) gid=1000(webdev) groups=1000(webdev)
这是$ getent group的输出
root:x:0:
...
webdev:x:1000:
...
www-data:x:1001:nginx
nginx:x:996:nginx
...
这里有一些来自/etc/passwd的行
webdev:x:1000:1000::/home/webdev:/bin/bash
【问题讨论】:
标签: python flask permissions uwsgi supervisord