NGINX 和 FastCGI 的 CGI 权限

NGINX 和 FastCGI 的 CGI 权限

我在运行 GitLab 的服务器上运行 GitWeb(本质上是 CGI 脚本)。我的目标是提供对 GitLab 存储库的只读访问权限,而无需注册人员。

我已将 GitWeb 指向具有drwxrws---所有者:组权限的存储库文件夹git:git。FastCGI 包装器正在使用用户:组运行www-data:www:data,因此我将其添加www-datagit组。我还www-data通过更改为该用户来验证对存储库的访问权限。

但是,当我运行 GitWeb 时,CGI 脚本无法访问存储库,也无法获取我的存储库列表。如果我向r-x其他部分(最后三元组)添加权限,一切都会正常,但由于显而易见的原因,我不想弄乱文件夹的权限。

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

任何帮助将不胜感激。

答案1

我已经找到并修复了这个问题。实际上这是 nginx 的一个错误。

通常,在 下nginx.conf,有一个用户指令用于设置 nginx 的setuid()/setgid()行为,该指令的语法是user <username> <groupname>。文档[1] 指出,如果省略<groupname><username>将用作组。然而,事实并非如此,nginx 默认为组nobody。当我明确添加组时www-data,一切都开始正常工作。

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

相关内容