【发布时间】:2014-12-04 17:43:58
【问题描述】:
我有一个要使用 uwsgi(由 NGINX 提供服务)从 Django 应用程序写入的文件夹。我将该文件夹的所有权设置为root:writinggroup,并将该文件夹的权限设置为775。我将www-data 用户添加到writinggroup 组。
然后在我的 uwsgi ini 文件中,我设置:
uid = www-data
但是当我运行我的服务器并点击适当的 URL 以触发写入操作时,我收到了权限错误。
但如果我将文件夹的所有权切换到www-data:writinggroup,一切都会完美运行。
那么这里发生了什么?为什么将文件夹的用户所有者设置为 www-data 可以完成工作,而将文件夹的组所有者设置为 writinggroup 即使 www-data (用户)是成员也不行那个组的?
基本上,我要问的是:如果您在 uwsgi 配置中设置了 uid 但未设置 gid,为什么 uwsgi 进程的行为不像它继承与该 uid 所属的组相关联的权限?
【问题讨论】:
-
读起来很有趣,但我不知道结果如何。如何运行 uwsgi 使其表现得像拥有与其 uid 所属的所有组相关联的所有权限?
-
或者,更一般地说,有没有办法运行任何进程,以便它拥有与其 uid 所属的所有组关联的所有权限?或者每个进程是否只获得其 uid 所有者和特定 gid 所有者的权限(因此,如果该 uid 是 3 个组的成员,它只获得其 gid 与该特定进程相关联的一个组的权限,而不是它所属的另外两个组)?