Linux下SVN server 的使用及權限配置

1、安裝SVNhtml

Linux 下能夠直接經過以下命令直接獲取svn server:(我使用的服務器系統爲Debian 7.5 穩定版)服務器

apt-get install subversion

安裝完成後,可經過svnserve --version 查看安裝的版本,我所使用的svn server 版本爲1.6.17:svn

 

2、建立代碼庫工具

建立庫(以test庫爲例):spa

sudo svnadmin create /home/user/svn/test

這樣,一個簡單的代碼倉庫就建立完成了。code

接下來啓動svn服務:server

svnserve -d -r /home/user/svn/test

而後client端就能夠經過「svn://ip.ip.ip.ip/test」來訪問svn了。htm

 

3、權限配置blog

進入test目錄以後,你會看到裏邊有個「conf」文件夾,進入conf文件夾,ls一下,你會看到有三個文件authz、passwd、svnserve.conf三個配置文件,其中authz用來配置用戶訪問權限的,passwd用來配置用戶及密碼,svnserve.conf是對整個svnserve的進程進行配置的。繼承

使用nano或者vi工具打開svnserve.conf,找到「# password-db = passwd」,這一句是指定當前庫所對應的用戶配置文件的,咱們須要把最前邊的「#」和空格刪掉;

找到「# anon-access = none」

  「# auth-access = write」這兩句,第一句是用來控制匿名訪問的,咱們直接給它設置成none就行了,第二句用來控制通過驗證容許訪問庫的用戶的權限,這裏咱們設置成write就能夠,固然,也要把前邊的「#」和空格都刪掉;

找到「# authz-db = authz」,這一句是用來指定當前庫對應的用戶權限配置文件的,咱們把最前邊的「#」和空格都刪掉,這樣庫在運行的時候要根據authz這個配置文件去匹配用戶權限。

 

到這裏,咱們的全部配置文件均可以起到他們應有的做用了,接下來就是對細節的具體配置:

對於passwd:

很簡單,在最後直接添加用戶就好,格式爲:「用戶名 = 密碼」,例如:「test_user = 12345」

對於authz:

主要是分爲兩類配置:[groups]類配置、以[repo:/]開頭的配置。

1.[groups]的配置很容易理解,就是羣組。格式也比較簡單,即「group_name = user1,user2,user3」,若是有多個用戶,能夠直接經過「,」的方式拼接就能夠了,例如:

    [groups] 

    # 經理 
    g_manager = michael  
    # 北京辦人員 
    g_beijing = scofield  
    # 上海辦人員 
    g_shanghai = lincon  
    # 總部通常員工 
    g_headquarters = rory, linda  

2.以[repo:/]開頭的配置,上邊的[gourps]配置是用來劃分用戶分組的,那麼以[repo:/]開頭的配置就是用來具體的劃分用戶讀寫權限的了,其中repo是你的庫的名字,即上邊咱們經過「svnadmin create /home/user/svn/test」命令所建立的庫「test」,下邊咱們直接用例子來講明它的使用方法:

對項目根目錄作限制,該目錄只容許經理才能修改,其餘人都只能擁有讀的權限:  
    [test:/] 
  @g_manager = rw

  * = r  
「[test:/]」 表示這個目錄結構的相對根節點,或者說是 test 項目的根目錄。這裏的 「@」 表示接下來的是一個組名,不是用戶名。由於目前 g_manager 組裏面只有一個 michael,你固然也能夠將 「@g_manager = rw」 這一行替換成 「michael = rw」 ,表達的意義徹底同樣。  
「*」 表示「除了上面提到的那些人以外的其他全部人」,也就是「除了部門經理外的其餘全部人」 
「* = r」 則表示「那些人只能讀,不能寫」。

對於根目錄下邊的子目錄,其權限配置方式是相同的,是須要把地址指明就能夠了,即[test:/folder1/folder2],這裏就不贅述了。

 

注意:配置中咱們可能會遇到「* =」這樣的狀況,他的目的是用來隔斷權限的繼承性。若是在某一級目錄的權限配置里加上這一句,則代表除了該配置中的用戶以外的其餘用戶徹底沒有這一級目錄的任何權利,既不可讀,更不可寫。

 

當全部的三個文件全都配置完成以後,接下來就是要讓它們都生效了,首先咱們須要確保svnserve服務已經停掉了,能夠經過「ps aux|grep svn」的方式來查看svn時候還在運行,若是還在運行的話直接經過「kill -9 [svn進程編號]」的方式把它停掉就能夠了,而後在經過命令「svnserve -d -r /home/user/svn/」來從新啓動svn服務,以上配置的三個文件就都起做用了!

 

相關參考:

debian 7上安裝svn:

http://www.cnblogs.com/xusir/p/3326142.html

相關文章
相關標籤/搜索