Permissions

使用 Subversion 伺服器配置 SVN 訪問

  • August 5, 2010

快速背景。我們在沒有 Web 訪問的 Windows 機器上執行 Subversion Server 1.6.5(沒有 Apache,只有 SVN 伺服器)。我們只使用 TortoiseSVN 和 AnkhSVN,為了持續集成,我們使用 svn 客戶端命令行。

好的,所以我在 NET 上環顧四周並閱讀了一些 SVN 書,但我不明白為什麼這個使用者設置不起作用。

authz(SVN授權文件)內容:

   ### Sanitized version
   [groups]
   devUsers = user1
   qaUsers = user2

   [/]
   @devUsers = r
   @qaUsers = r

   [/Dev/SourceCode]
   @devUsers = rw
   ~devUsers = 

   ### QA Projects
   [/Dev/testCases]
   @qaUsers = rw
   ~qaUsers =

根據我的閱讀,您必須授予所有使用者對儲存庫根目錄的最低讀取權限。好的。這樣可行。接下來我的 /Dev/SourceCode 目錄應該只有 @devUsers 可以訪問,但由於某種原因,在 TortoiseSVN 的 repo-browser 中,@qaUsers可以看到這個文件夾。我猜全域讀取訪問權限/覆蓋~devUsers =了 authz 文件中的行?/Dev/TestCases 文件夾也是如此,它只能訪問@qaUsers,但@devUsers也可以查看此文件夾。這是我的問題之一。

但主要問題是 /Dev/SourceCode 的子文件夾只是只讀的。我知道這一點,因為當我嘗試將某些內容簽入子文件夾時,它說授權失敗。但是,在根文件夾中,如果您簽入文件,它可以正常工作。

我猜這又是/只讀訪問覆蓋的東西。這是否意味著每個子文件夾都必須被賦予明確的 rw 權限?無論如何,從這一點來說,使用目前父文件夾的權限?,即 /Dev/SourceCode 的權限。如果您想在有許多子文件夾時向所有子文件夾授予 rw 權限,這似乎真的很不方便。

當我看到您的授權文件時,我最初的想法是,“路徑聲明中沒有缺少儲存庫名稱嗎?”

我的意思是,

[/Dev/SourceCode]
@devUsers = rw
@qaUsers = 

應該看起來像,

[<repo-name>:/Dev/SourceCode]
@devUsers = rw
@qaUsers = 

或者,如果 `Dev’儲存庫的名稱,

[Dev:/SourceCode]
@devUsers = rw
@qaUsers = 

我將 apache 用於我們的儲存庫,但無論是 httpd 還是 svnserve,語法看起來都一樣:基於路徑的授權

我希望這有幫助。

謝謝你,

扎卡里

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