Subversion權限配置

 

Subversion權限配置        Subversion的權限設置功能爲代碼的安全訪問提供了可靠的保障,通過設置不同的用戶權限和組權限,各種角色分工明確,在共享代碼的同時保證代碼不受破壞。
在建立多個版本庫時,每個版本庫都有自己的配置文件,可以單獨配置用戶權限和組權限。爲簡單起見,將所有版本庫都指向同一個配置文件,在這個配置文件中統一進行配置。
1.指定根目錄
首先要指定一個根目錄,假設爲C:\VersionLib,所有的版本庫都存在這個根目錄之下。然後啓動svnserve服務,具體步驟見我的上一篇文章《Subversion安裝配置指南》,需要注意的是啓動目錄爲C:\VersionLib,即指向根目錄,不指向任何特定的版本庫。
2.建立版本庫
在C:\VersionLib中建立子目錄,如prj1、prj2,子目錄裏還可以建立子目錄,如在prj2中建立shanghai、xian,目錄結構如下:
VersionLib
-prj1
-prj2
-shanghai
-xian
然後在prj1、shanghai、xian中分別建立三個版本庫,並把passwd、authz文件複製一份到VersionLib目錄中,以便統一配置
3.配置版本庫
(1)修改3個版本庫的svnserve.conf文件
把授權權限打開:
anon-access = none
auth-access = write
在prj1版本庫中修改svnserve.conf:(指向根目錄)
password-db = ..\..\passwd
authz-db = ..\..\authz
在其他兩個版本庫中修改svnserve.conf:(指向根目錄)
password-db = ..\..\..\passwd
authz-db = ..\..\..\authz
(2)修改根目錄中的passwd文件
在passwd文件中創建用戶和密碼:
[users]
qianxin = qx
yiyu = yy
gongyu = gy
zhaoming = zm
dai = dai
yinjun = yj
wangying = wy
一共創建了7個用戶
(3)修改根目錄中的authz文件
在authz中設置權限:
[groups] #分組
prj1_group = dai,gongyu,wangying
prj2_sh_group = zhaoming,yinjun
prj2_xa_group = qianxin,yiyu
[/] #根目錄,即所有的版本庫(包括prj1、prj2)
qianxin = rw #管理員

[prj1:/] #prj1項目
qianxin = rw #由於指定了"* = r",覆蓋了父目錄權限的繼承,因此需要另外指定管理員對該版本庫的訪問權限
@prj1_group = rw #組權限,前面必須加@
* = r #除了prj1_group組以外所有人的權限

[prj2/shanghai:/] #prj2中的shanghai項目
qianxin = rw #同上
@prj2_sh_group = rw
* = #除了prj2_sh_group組以外所有人都無法訪問該版本庫

[prj2/xian:/] #prj2中的xian項目
prj2_xa_group = rw
注意點:
子目錄繼承父目錄的訪問權限,如果指定了管理員對根目錄具有讀寫權限,則管理員對子目錄也具有讀寫權限。
但是,如果在子目錄中設置* = 來割斷對父目錄權限的繼承,則子目錄中必須設置管理員權限爲rw,下面這種設置是有問題的:
[arm:/]
qianxin = rw

[arm:/diary/shanghai]
dai = rw
gongyu = rw
* =
由於管理員qianxin對/diary/shanghai沒有任何權限,因此就無法進行導入(導入要求對所有目錄都有寫的權限)。正確的做法是在子目錄的權限配置中也加上“qianxin = rw”。
4.訪問版本庫
通過以下URL訪問各版本庫(導入、導出):
svn://localhost/prj1
svn://localhost/prj2/shanghai
svn://localhost/prj2/xian


本文來自聯城技術網(http://tech.16c.cn/)轉發請保留地址:http://tech.16c.cn/svnsy/20100905/54232.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章