SVN權限控制手冊新手必備
本節和大家一起學習一下SVN權限控制,只有掌握了對SVN權限的管理才能更好的使用SVN,讓我們一起來學習SVN權限控制吧。
SVN權限控制手冊
在文章《Subversion詳細說明》中,我們曾經建立了一個版本控制倉庫,現在打開這個版本控制倉庫,讓我們來看看這個目錄結構,我們會在目錄結構中找到一個叫做conf的文件夾,打開這個文件夾,你會看到三個文件,分別叫做authz,passwd,svnserve.conf。
下面SVN權限控制就來介紹一下這三個文件的作用格式什么。
首先,我們介紹passwd這個文件。
用你習慣的文本編輯器打開這個文件,你會看到一些使用“#”注釋掉的說明,其中關鍵的就是在[users]下面,有
#harry=harryssecret
#sally=sallyssecret
樣的樣板代碼,意思就是有兩個用戶,其中一個的用戶名叫“harry”,密碼為“harryssecret”,而另一個用戶名為“sally”,密碼為“sallyssecret”。我們接下來為我們的測試下面添加一些用戶,這樣方便我們下面的說明。比如,我要添加三個用戶,一個叫做“nicholas”,密碼為“nicholas”,第二個用戶名為“friend”,密碼為“friend”,第三個為“stranger”,密碼為“strangers”。
代碼如下:
nicholas=nicholas
friend=friend
stranger=stranger
這樣,我們就添加好了三個認證用戶。
###Thisfileisanexamplepasswordfileforsvnserve.
###Itsformatissimilartothatofsvnserve.conf.Asshowninthe
###examplebelowitcontainsonesectionlabelled[users].
###Thenameandpasswordforeachuserfollow,oneaccountperline.
[users]
#harry=harryssecret
#sally=sallyssecret
nicholas=nicholas
friend=friend
stranger=stranger
下面,SVN權限控制來介紹authz這個文件,這個文件是控制權限的關鍵。
同樣打開這個文件,你會看到一些注釋掉的語句,
#[groups]
#[/foo/bar]
#[repository:/baz/fuz]
下面,我們介紹一下用戶組的概念。所謂用戶組,顧名思義,就是一個成員組,一般情況下,在同一個成員組的人員享有同樣的權力,比如讀,寫權。Subversion為我們提供了一個很好的用戶組應用。
在之前,我們一共建立三個用戶,nicholas,friend和stranger,我們現在設想一下我們的組情況,假設我們希望nicholas和friend在開發組中,這兩個用戶具有讀和寫的權力,而用戶stranger在測試組中,只具備讀的權力。那么我們該如何來控制這個權限呢?看看下面的代碼:
我們先在[groups]標記下面,輸入組的名稱:
dev_group=nicholas,friend
test_group=stranger
到目前為止,我們已經為三個用戶分好了用戶組,其中nicholas和friend在dev_group中,而stranger則在test_group中。
下面,SVN權限控制手冊介紹一下如何為兩個組來分配權限。
首先我們要為這兩個組所能訪問的工程做一個規定,正如在之前的文章《Eclipse中使用Subversion進行版本控制》中,曾經向版本參考提交了一個名為“TestSVNProj”的項目,下面我就假設剛剛建立的兩個用戶組都需要最這個工程進行操作。
我們在authz文件中,寫下[TestSVNProj],這個是指定我們下面將對TestSVNProj項目進行定義。
我們使用如下代碼:
@dev_group=rw
@test_group=r
這就定義了,對TestSVNProj項目,dev_group用戶組可以進行讀,寫操作,而test_group用戶組則只具備讀的權限。
為了阻止其他用戶組對這個文件有讀的權力,我們可以再添加一句:
*=
這個語句就是指定其他的用戶組的權力為空,也就是沒有權力。
***,我們在來說說這個svnserve.conf文件,打開這個文件,我們就可以看出這個是Subversion權限配置的主文件,類似于讀取相關信息的樞紐。
為了讓我們剛剛配置的兩個文件(passwd和authz)起作用,我們需要去掉password-db=passwd和authz-db=authz前面的注釋符“#”,讓Subversion知道要從上面兩個文件中讀取相關信息。
當然,你也可以指定其他的認證文件,寫法如下:
password-db=..\..\passwd
authz-db=..\..\authz
以此類推。
在實戰過程中,處于安全的考慮,我們往往要限制對匿名用戶的訪問權限,所以我們可以將anon-access=read前面的“#”去掉,并將read參數修改為none,表明禁止匿名用戶對版本控制庫的訪問。至此,SVN權限控制學習結束,你可以控制你的項目,對其進行訪問權限的控制了。
【編輯推薦】
- 多項目中SVN權限管理精辟解析
- Apache+SVN權限管理實例剖析
- SVN版本庫自動備份如何實現?
- 如何實現SVN倉庫目錄規范化管理?
- 經驗總結:TortoiseSVN客戶端使用心得