2009-12-02 28 views
3

我試圖在CentOS 5系統上設置SVN,以便幾個人可以使用存儲庫。奇怪的Subversion權限問題

  • 我在/var/svnrepository處創建了存儲庫。
  • 我添加了一個subversion用戶和組,使得該存儲庫的所有者以遞歸方式。
  • 我將權限設置爲775遞歸。
  • 我確保所有系統用戶都在subversion組中。

我遇到的問題是,當我做了承諾,SVN顯然是創建一個名爲db/current文件,它有自己的用戶名和組。所以說我的用戶名是jimbo ...

-rwxrwxr-x 1 jimbo  jimbo   11 Dec 2 01:09 current 

然後之後,沒有人可以檢查出任何東西。他們獲得了拒絕權限的錯誤。

也有一個類似的問題,有一個名爲db/format文件。

Can not open file /var/svnrepository/contactdb/trunk/format: Permission denied 

有沒有其他人看過?瞭解解決方案?

所有資源庫訪問都是通過ssh訪問的。

奇怪的是,我已經設置了SVN在Linux之前,從來沒有過這樣的問題。我不知道這次我做了什麼不同。

回答

3

注意,通常的SETGID設置上顛覆庫目錄及其子目錄:

drwxr-sr-x svnowner svnusers 4096 2008-11-01 . 
通過搭配chmod 775你不設置該SETGID位和這就是爲什麼問題發生

的SETGID手段:如果您創建了一個文件,該組將被設置爲svnusers(在我的示例中),而不是您的主要組。

我敢打賭,你沒有設置SetGID位,是嗎?

然而,最好是改變文件夾的GID:

chmod g+s <REPO>/dir 

最好是你看看到一個新創建的存儲庫相匹配的權限。

+0

我敢打賭,將用戶的主要用戶組更改爲svnusers是可行的,但這似乎是一種破解。這意味着Subversion會劫持Unix的權限,從而在基本的層面上改變如何保護系統。 – 2009-12-02 14:13:43

+0

這是一個黑客。通常,setGID位在存儲庫目錄中設置。如果已設置,則始終設置正確的組 – 2009-12-02 15:25:13

+0

這看起來可行。我運行了'chmod -R g + s'。現在整個存儲庫都是'rwxrws --- subversion subversion'。用戶在'subversion'組中。我們會看看是否有效。如果沒有,我會看看Apache或svnserv,但我希望避免運行另一個守護進程。 – Ethan 2009-12-02 19:16:02

2

您正在使用的svnserve或者是每個人經歷file:/// URI的? Subversion建議against the secondsvnserve -d應作爲單個用戶運行。

這裏是試圖使多種接入方式工作的一些documentation

+0

每個人都通過ssh訪問它,如下所示:'svn co svn + ssh:// host.com/var/repository' – Ethan 2009-12-02 01:51:53

+0

您是否遵循了有關爲svnserve創建包裝腳本的文檔中的建議, umask到002? http://svnbook.red-bean.com/en/1.1/ch06s05。html – 2009-12-02 14:11:22

+0

這不是真的100%清楚,但從我的理解我實際上沒有使用svnserv。只需通過ssh訪問存儲庫。 – Ethan 2009-12-02 19:05:56