SVN權(quán)限配置專家詳解
本節(jié)向大家描述一下SVN權(quán)限配置問(wèn)題,在學(xué)習(xí)版本控制工具SVN時(shí),了解了SVN權(quán)限配置才能更好的對(duì)SVN進(jìn)行操作,歡迎大家一起來(lái)學(xué)習(xí)SVN權(quán)限配置方法。
作為一個(gè)配置管理員,需要管理用戶的權(quán)限,本文主要介紹了使用Subversion的授權(quán)文件“authz-db”,同時(shí)為了敘述的清晰,我首先澄清SVN權(quán)限配置的一些概念。
1.認(rèn)證(Authentication)和授權(quán)(Authorization)
這兩個(gè)術(shù)語(yǔ)經(jīng)常一起出現(xiàn)。其中認(rèn)證的意思就是鑒別用戶的身份,最常見(jiàn)的方式就是使用用戶名和密碼,授權(quán)就是判斷用戶是否具備某種操作的權(quán)限,在Subversion里提供了“authz-db”文件,實(shí)現(xiàn)了以路徑為基礎(chǔ)的授權(quán),也就是判斷用戶是否有操作對(duì)應(yīng)路徑的權(quán)限。
2.svnserve下的配置文件
因?yàn)楸疚氖且詓vnserve為例的,所以先介紹一下版本庫(kù)目錄的結(jié)構(gòu):
D:\SVNROOT\PROJECT1
├─conf
├─dav
├─db
│├─revprops
│├─revs
│└─transactions
├─hooks
└─locks
其中conf下面有三個(gè)文件:
authz
passwd
svnserve.conf
其中的“svnserve.conf”是這個(gè)版本庫(kù)的配置文件,當(dāng)使用svnserve時(shí),這個(gè)配置文件決定了使用什么認(rèn)證和授權(quán)文件:
password-db=passwd
authz-db=authz
上面的SVN權(quán)限配置說(shuō)明使用“svnserve.conf”同目錄的passwd和authz,其中的password-db指定了用戶密碼文件,authz-db是我們的授權(quán)文件,也就是我們本文主要介紹的文件。
3.基于svnserve的版本庫(kù)文件布局
使用svnserve時(shí),為了管理的方便,應(yīng)該使用相同的認(rèn)證和授權(quán)文件,所以應(yīng)該讓所有版本庫(kù)的配置文件svnserve.conf指向同一個(gè)password-db和authz-db文件。下面是一個(gè)多版本庫(kù)的目錄:
D:\SVNROOT
├─project1
│├─conf
│├─dav
│├─db
││├─revprops
││├─revs
││└─transactions
│├─hooks
│└─locks
└─project2
├─conf
├─dav
├─db
│├─revprops
│├─revs
│└─transactions
├─hooks
└─locks
D:\SVNROOT下有兩個(gè)目錄project1和project2,都已經(jīng)創(chuàng)建了版本庫(kù),所以我們修改每個(gè)conf目錄下的svnserve.conf,使之指向同一個(gè)password-db和authz-db文件。
password-db=..\..\passwd
authz-db=..\..\authz
這樣,D:\SVNROOT\passwd和D:\SVNROOT\authz就控制了所有版本庫(kù)的svnserve訪問(wèn)。另外在后面的操作中要關(guān)閉匿名訪問(wèn),應(yīng)該去掉“anon-access=none”前的“#”號(hào),保證只有認(rèn)證用戶可以訪問(wèn)。
注意:還有一點(diǎn)需要注意,那就是svnserve的“realm”的值,在上面的設(shè)置下,應(yīng)該保證所有的版本庫(kù)使用相同的realm值,這樣,對(duì)版本庫(kù)的密碼緩存可以在多個(gè)版本庫(kù)之間共享,更多細(xì)節(jié)見(jiàn)客戶端憑證緩存。
4.測(cè)試用戶和組說(shuō)明
再來(lái)看一下SVN權(quán)限配置中測(cè)試用戶和組說(shuō)明問(wèn)題。版本庫(kù)禁止任何匿名用戶的訪問(wèn),只對(duì)認(rèn)證用戶有效。
root:配置管理管理員,對(duì)版本庫(kù)有完全的管理權(quán)限。
p1_a1:project1的管理員,對(duì)project1有完全權(quán)限。
p1_d1:project1的開(kāi)發(fā)者,對(duì)project1的trunk有完全的權(quán)限,但是對(duì)其中的/trunk/admin目錄沒(méi)有任何權(quán)限。
p1_t1:project1的測(cè)試者,對(duì)project1的trunk有完全的讀權(quán)限,但是對(duì)其中的/trunk/admin目錄沒(méi)有任何權(quán)限。
p2_a1:project2的管理員,對(duì)project2有完全權(quán)限。
p2_d1:project2的開(kāi)發(fā)者,對(duì)project2的trunk有完全的權(quán)限,但是對(duì)其中的/trunk/admin目錄沒(méi)有任何權(quán)限。
p2_t1:project2的測(cè)試者,對(duì)project2的trunk有完全的讀權(quán)限,但是對(duì)其中的/trunk/admin目錄沒(méi)有任何權(quán)限。
對(duì)應(yīng)的組及組的用戶:
p1_group_a:p1_a1
p1_group_d:p1_d1
p1_group_t:p1_t1
p2_group_a:p2_a1
p2_group_d:p2_d1
p2_group_t:p2_t1。請(qǐng)期待下節(jié)SVN權(quán)限配置方法介紹。
【編輯推薦】