SVN root 需要設定哪些權限?

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>
  1. 是否足夠安全,或者訪客有可能存取受限項目中的敏感資訊?

  2. 透過SVN更新公共專案的來源時,出現以下錯誤:

    無權開啟編輯操作的根目錄

    Apache error.log 顯示以下元素:

    驅動程式更新報告編輯器時發生故障 [500, #220000]
    無權開啟編輯操作的根目錄 [500, #220000]

    至於access.log,它顯示SVN客戶端發出了一堆PROPFIND(response: HTTP 207)和OPTIONS(response: HTTP 200),最後:

    “報告 /root/!svn/vcc/default HTTP/1.1” 500 241

    我應該如何解決這個問題,即為公共項目啟用公共只讀訪問,同時對未經授權的用戶隱藏受限項目?

注意:授予 GET 權限/root使來賓可以載入公共專案的原始程式碼,但也使公共行為成為預設行為。我更願意限制存取權限,並僅在包含公共專案的節點上授予存取權限。

答案1

我從頭開始建立了一個全新的環境並使用了它的配置,但看起來僅有的方法是將所有內容預設為公開,然後明確限制特定項目。

從安全角度來看,這是完全愚蠢的,特別是在創建大量專案的情況下,有時不是完全自動化的,很容易因忘記施加限製而犯錯。話雖如此,它也迫使進一步推動自動化,這只會是有益的。

如果有人想使用這些設置,我可以提供目前使用的配置。

相關內容