我目前正在與建立一個Git倉庫服務器,所以我們可以從SVN切換到GIT嘗試接入。我幾乎涵蓋了所有內容,但是留下了一個問題。只顯示GIT回購的哪個用戶擁有的GitWeb
當前設置如下:
- 所有開發人員(非開發商)有,因爲服務器是NIS客戶
- 所有回購在/ var是由一個用戶帳戶&正確的組/的git/
- 所有拉/推是通過SSH
做這工作完全到目前爲止,並消除了的gitosis或gitolite的需要。
因爲我想有我設置的GitWeb包括PATHINFO存儲庫的可瀏覽的概述。因爲回購是私人的,我已經通過Perl AuthenNIS設置了身份驗證,這很有效,但是在這裏我遇到了一個問題。
這是不需要的,所有的開發人員可以訪問所有存儲庫,但只的GitWeb顯示每個倉庫它(Apache用戶)可以閱讀。
所以我的問題是:是否有可能使gitweb只顯示GIT repo的當前登錄用戶有權訪問?
可能的解決方案:通過的.htaccess
- 進一步的訪問控制。該PATHINFO將使這一點,但它不會阻止回購的從通過非PATHINFO的URL被訪問(例如/repo.git/是行不通的,但/gitweb.cgi?p=repo.git會)
- 設置一個完整的gitosis/gitolite環境並將其整合到gitweb中(本質上爲this)。我想阻止這種情況,因爲開銷是不可取的
- 使gitweb作爲經過身份驗證的HTTP用戶運行。這將修復所有的訪問控制問題,但我不知道如何去做
- gitweb的
$export_auth_hook
結合$cgi->remote_user
似乎很有希望,但我對perl的理解太有限,無法使用它(掛鉤需要驗證用戶有權訪問repo目錄之前顯示/導出它)
有沒有人知道如何使3或4工作或有另一種解決方案?
謝謝。 NIS身份驗證沒有問題,但不允許apache用戶sudo創建巨大的安全漏洞? – dtech
你可以限制誰可以用'sudo'做什麼。看看'男人sudoers'。 – ErikR