我在运行GitLab的服务器上运行GitWeb(本质上是一个CGI脚本)。 我的目标是在不注册人员的情况下提供对GitLab存储库的只读访问权限。
我已经把GitWeb指向了有权限drwxrws---
拥有者:group git:git
存储库文件夹。 FastCGI包装与用户运行:组www-data:www:data
,所以我添加了www-data
组www-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
,一切都开始按照它应该的方式工作。