Apache-2.2
在 SVN root 上設置什麼權限?
我正在嘗試通過 Apache 提供對 SVN 伺服器的遠端訪問。情況可以這樣說明:
/root /public-project /trunk /branches /restricted-project /trunk /branches
只有一個儲存庫,其中包含兩個項目。
任何人都可以查看公共項目(僅查看,從不修改)。受限制的只能由屬於特定組的使用者讀取/修改。配置如下:
<Location "/root"> DAV svn SVNPath [...] SVNIndexXSLT [...] [...] <LimitExcept PROPFIND OPTIONS REPORT> require ldap-group CN=SVN Administrators,OU=Subversion,DC=example,DC=com </LimitExcept> </location> <Location "/root/public-project"> <LimitExcept GET PROPFIND OPTIONS REPORT> require ldap-group CN=Project1 Contributors,OU=Subversion,DC=example,DC=com </LimitExcept> </location> <Location "/root/restricted-project"> require ldap-group CN=Project2 Contributors,OU=Subversion,DC=example,DC=com </location>
- 它是否足夠安全,或者訪客有可能從受限制的項目中訪問敏感資訊?
- 通過 SVN 更新公共項目的源時,出現以下錯誤:
無權打開編輯操作的根目錄
Apache error.log 顯示以下元素:
驅動更新報告編輯器時發生故障
$$ 500, #220000 $$
無權打開編輯操作的根目錄 $$ 500, #220000 $$
至於access.log,顯示SVN客戶端發了一堆
PROPFIND
(response: HTTP 207)和OPTIONS
(response: HTTP 200),最後:“報告 /root/!svn/vcc/預設 HTTP/1.1” 500 241
我應該怎麼做才能解決這個問題,即為公共項目啟用公共只讀訪問,同時對未經授權的使用者隱藏受限項目?
注意:授予 GET 權限
/root
使來賓可以載入公共項目的原始碼,但也會使公共行為成為預設行為。我寧願限制訪問,只在包含公共項目的節點上授予它。
我從頭開始建構了一個新環境並使用它的配置,但似乎唯一的方法是預設將所有內容設置為公共,然後明確限制特定項目。
這是完全愚蠢的,安全方面的,特別是在創建大量項目的情況下,有時不是完全自動化的,很容易因為忘記設置限製而犯錯誤。話雖如此,它也迫使進一步推動自動化,這只會是有益的。
如果有人想使用這些設置,我可以提供目前使用的配置。