Nginx
NGINX 和 FastCGI 的 CGI 權限
我正在執行 GitLab 的伺服器上執行 GitWeb(本質上是一個 CGI 腳本)。我的目標是在不註冊人員的情況下提供對 GitLab 儲存庫的只讀訪問。
我已將 GitWeb 指向我的儲存庫文件夾,該文件夾
drwxrws---
具有 owner:group權限git:git
。FastCGI 包裝器與 user:group 一起執行www-data:www:data
,所以我添加www-data
到git
組中。我還www-data
通過更改為該使用者來驗證對儲存庫的訪問。但是,當我執行 GitWeb 時,CGI 腳本無法訪問儲存庫,也無法獲取我的儲存庫列表。如果我向其他部分(最後一個三元組)添加
r-x
權限,一切正常,但由於顯而易見的原因,我不想弄亂文件夾的權限。順便說一句,我正在執行 Debian stable 並且沒有安裝 SE-Linux 或類似的東西。
任何幫助將不勝感激。
我發現並解決了這個問題。實際上這是nginx中的一個錯誤。
通常,在 下
nginx.conf
,有一個設置 nginx 的setuid()
/setgid()
行為的使用者指令,該指令的語法是user <username> <groupname>
. 文件$$ 1 $$聲明,如果您省略
<groupname>
,<username>
將用作組。但是,情況並非如此,nginx 預設為 groupnobody
。當我www-data
明確添加組時,一切都開始正常工作。 $$ 1 $$ http://wiki.nginx.org/CoreModule#user