CGI的权限与NGINX和FastCGI

我在运行GitLab的服务器上运行GitWeb(本质上是一个CGI脚本)。 我的目标是在不注册人员的情况下提供对GitLab存储库的只读访问权限。

我已经把GitWeb指向了有权限drwxrws---拥有者:group git:git存储库文件夹。 FastCGI包装与用户运行:组www-data:www:data ,所以我添加了www-datawww-data 。 我也通过改变这个用户来validationwww-data到版本库的访问。

但是,当我运行GitWeb时,CGI脚本无法访问存储库,无法获取我的存储库列表。 一切工作正常,如果我将rx权限添加到其他部分(最后三重),但我不想混乱的文件夹的权限,因为显而易见的原因。

顺便说一句,我运行Debian稳定,并没有安装SE-Linux或类似的东西。

任何帮助将不胜感激。

我发现并解决了这个问题。 其实这是一个在Nginx的错误。

通常情况下,在nginx.conf ,有一个用户指令设置nginx的setuid() / setgid()行为,指令的语法是user <username> <groupname> 。 Doucmentation [1]指出,如果省略<groupname><username>将被用作组。 但是,情况并非如此,nginx默认将nobody分组。 当我明确地添加组www-data ,一切都开始按照它应该的方式工作。

[1] http://wiki.nginx.org/CoreModule#user