Spring+SpringMVC+MyBatis+easyUI整合基礎篇(十一)SVN伺服器進階

涵s發表於2017-03-15

前言

上一篇文章《Spring+SpringMVC+MyBatis+easyUI整合基礎篇(十)SVN搭建》簡單的講了一下SVN伺服器的搭建,並沒有詳細的介紹配置檔案及一些複雜的功能,所以本文算是對上一篇文章的補充。

專案實際效果展示在這裡,賬密:admin 123456
下載地址,點這裡
github地址,在這裡

配置檔案詳解

svnserve.conf

svn服務配置檔案,做許可權配置及基本的關聯設定

[general]
anon-access = none #非授權使用者無法訪問

auth-access = write #授權使用者有讀寫許可權(設定為read時為只讀) 

password-db = passwd #密碼資料檔案(此時為當前conf目錄下的passwd檔案,也可以設定為絕對路徑,如'/opt/svnconf/passwd')

authz-db = authz    #許可權設定檔案(此時為當前conf目錄下的authz檔案,也可以設定為絕對路徑,如'/opt/svnconf/authz',如果未指定路徑,則無訪問控制)

# 這兩個選項用來指定加密強度的(自行設定)
# min-encryption = 0
# max-encryption = 256

passwd

用來設定使用者名稱和密碼的,格式為 使用者名稱 = 密碼

[users]
ssm1 = 123456(使用者名稱ssm1密碼為123456)
ssm2 = 567890

authz

使用者許可權配置

[ssm-demo:/]    #表示ssm-demo倉庫下的所有檔案
ssm1 = rw       #ssm1使用者具有讀寫許可權
ssm2 = r        #ssm2使用者具有讀許可權
[ssm-demo:/code/trunk/aaa]    #表示ssm-demo倉庫下的/code/trunk/aaa目錄
ssm1 = r        #ssm1使用者具有讀許可權
ssm2 = r        #ssm2使用者具有讀許可權

許可權設定

上面只是對authz檔案做了簡單的介紹及簡單的使用者許可權配置,還有複雜的許可權設定需要注意,比如有管理組admin及開發組A和開發組B,對應的開發專案為qq和weixin,這三組人員對應的專案許可權肯定不一樣,設定如下:
首先在passwd檔案中設定全部人員

[users]
zhao = 123456(使用者名稱ssm1密碼為123456)
qian = 123456
sun = 567890
li = 123456
zhou = 123456
wu = 567890
zheng = 567890

然後在authz檔案中設定許可權

[group]             #設定分組(使用者zheng未分組)
admin = zhao,qian   #管理員zhao和qian
group_a = sun,li    #A開發組sun和li
group_b = zhou,wu   #B開發組zhou和wu


[qq:/]              #表示qq專案倉庫下的所有檔案
@group_a = rw       #開發組A有讀寫許可權
@admin=rw           #admin有讀寫許可權 
* =                 #其他使用者無許可權(此時的其他使用者就包括未分組的zheng及已經分組的group_b組中所有成員)

[weixin:/]          #表示weixin專案倉庫下的所有檔案
@group_b = rw       #開發組A有讀寫許可權
@admin=rw           #admin有讀寫許可權 
* =                 #其他使用者無許可權(此時的其他使用者就包括未分組的zheng及已經分組的group_a組中所有成員)

補充

比如,qq專案下又有qq空間和qq郵箱,對這兩個目錄再進行許可權分配

[group]                 #分組
admin = zhao,qian       #管理員zhao和qian
group_a = sun,li        #A開發組sun和li
group_b = zhou,wu       #B開發組zhou和wu
g_a_zone = ma           #新增qq空間組及成員ma
g_a_mail = zhang        #新增qq郵箱組及成員zhang


[qq:/zone]              #表示qq專案的qq空間目錄
@g_a_zone = rw          #開發組g_a_zone有讀寫許可權
@admin=rw               #admin有讀寫許可權
@group_a = rw           #開發組A有讀寫許可權 
* =                     #其他使用者無許可權

[qq:/mail]              #表示qq專案的mail空間目錄
@g_a_mail = rw          #開發組g_a_mail有讀寫許可權
@admin=rw               #admin有讀寫許可權 
@group_b = rw           #開發組A有讀寫許可權
* =                     #其他使用者無許可權

使用者某個目錄的許可權是向子目錄遞迴的。

多版本庫

如果想兩個專案分別進行開發,且擁有獨立的開發人員,可以建立多個版本倉庫,伺服器中已經有ssm-demo倉庫,我們再新建一個ssm-maven倉庫。命令如下:

mkdir /opt/svn/ssm-maven
svnadmin create /opt/svn/ssm-maven

分別設定ssm-maven目錄conf配置資料夾下的配置檔案,重啟svn服務即可,此時就有兩個倉庫了。

刪除版本庫

rm -rf ssm-demo #謹慎使用 rm -rf 命令

有問題可以留言。

相關文章