Nginx

NGINX 和 FastCGI 的 CGI 權限

  • May 27, 2013

我正在執行 GitLab 的伺服器上執行 GitWeb(本質上是一個 CGI 腳本)。我的目標是在不註冊人員的情況下提供對 GitLab 儲存庫的只讀訪問。

我已將 GitWeb 指向我的儲存庫文件夾,該文件夾drwxrws---具有 owner:group權限git:git。FastCGI 包裝器與 user:group 一起執行www-data:www:data,所以我添加www-datagit組中。我還www-data通過更改為該使用者來驗證對儲存庫的訪問。

但是,當我執行 GitWeb 時,CGI 腳本無法訪問儲存庫,也無法獲取我的儲存庫列表。如果我向其他部分(最後一個三元組)添加r-x權限,一切正常,但由於顯而易見的原因,我不想弄亂文件夾的權限。

順便說一句,我正在執行 Debian stable 並且沒有安裝 SE-Linux 或類似的東西。

任何幫助將不勝感激。

我發現並解決了這個問題。實際上這是nginx中的一個錯誤。

通常,在 下nginx.conf,有一個設置 nginx 的setuid()/setgid()行為的使用者指令,該指令的語法是user <username> <groupname>. 文件

$$ 1 $$聲明,如果您省略<groupname>,<username>將用作組。但是,情況並非如此,nginx 預設為 group nobody。當我www-data明確添加組時,一切都開始正常工作。 $$ 1 $$ http://wiki.nginx.org/CoreModule#user

引用自:https://serverfault.com/questions/511086