Linux (CentOS 7 )下搭建局域網SVN服務器+SVN權限配置

準備

公司內部須要配置局域網SVN,須要在在內部虛擬機服務器搭建,搭建過程作個記錄,供參考。
注:若是條件容許,儘可能在windows下搭建svn服務器,很省事,尤爲是權限配置很是方便又易懂,效果相同mysql

首先須要搭建SVN服務器

若是確認沒有svn能夠直接進入安裝步驟sql

安裝準備

保證當前系統沒有安裝svn
使用命令,嘗試查看是否已經安裝了svnwindows

rpm -qa subversion

或者,咱們直接在所有文件中查找svn文件夾就能夠,使用以下命令查找,任意文件目錄下輸入服務器

find / -name svn

若是發現svn文件夾首先要確認是否爲svn的文件夾,有些軟件內置svn文件夾及相關服務,注意不要看錯了。
如:
clipboard.pngsvn

下面幾行的svn是在redmine下的svn因此它是不須要進行處理的,若存在svn,則進行刪除或者卸載。
若是是壓縮包安裝只許刪除全部相關文件spa

rm -rf [目標文件夾]

若是使用的是yum安裝則:code

yum remove subversion

出現確認輸入y 便可,直至卸載完成
使用命令ip

rpm -qa subversion

沒有出現svn版本說明卸載成功內存

SVN安裝

分別執行以下命令(安裝必須在聯網狀況下完成)安裝svn和相關依賴包開發

yum install subversion
yum install mod_dav_svn
yum install httpd httpd-devel subversion mod_dav_svn 
 mod_auth_mysql

安裝完成後進行確認是否安裝成功,根目錄下輸入

cd /etc/httpd/modules

執行

ls | grep svn

出現以下內容便可
mod_authz_svn.so
mod_dav_svn.so

到此爲止svn服務器基本安裝完成

SVN配置

建立代碼庫

新建一個目錄用於版本庫,存放版本庫信息(這一步能夠省略)

mkdir -p /usr/local/svn/repo

建立一個版本庫

svnadmin create /usr/local/svn/repo

上面的位置就是版本庫的位置,文件內存放該版本庫的相關信息

用戶配置以及配置文件的修改

進入配置文件目錄

cd /usr/local/svn/repo/conf

修改svnserve.conf 去掉下面幾列的註釋

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

分別解釋一下上面四行的意思

  1. anon-access 控制非鑑權用戶訪問版本庫的權限。取值範圍爲"write"、"read"和"none"。即"write"爲可讀可寫,"read"爲只讀,"none"表示無訪問權限。缺省值爲read
  2. auth-access 控制鑑權用戶訪問版本庫的權限。取值範圍爲"write"、"read"和"none"。即"write"爲可讀可寫,"read"爲只讀,"none"表示無訪問權限。缺省值:write
  3. password-db 指定用戶名口令文件名。除非指定絕對路徑,不然文件位置爲相對conf目錄的相對路徑。缺省值:passwd
  4. authz-db 指定權限配置文件名,經過該文件能夠實現以路徑爲基礎的訪問控制。除非指定絕對路徑,不然文件位置爲相對conf目錄的相對路徑。缺省值:authz

修改passwd 文件,這個文件是存儲全部帳號和密碼的

打開文件添加帳戶信息

[user]
admin = 123456
root = root

admin爲登錄的用戶名,123456是密碼,使用回車分割用戶

修改authz文件 ,該文件是進行用戶分組和權限配置的

在[/]下添加

[/]
admin = rw
root = rw
* = r

解釋一下啊上面的配置
admin用戶具備根目錄下全部文件的rw(read,write)讀寫 權限,其餘用戶用*代替,其餘用戶只有讀的權限

至此svn服務器的基本配置和用戶配置已經完成
能夠在svn客戶端訪問地址

svn://ip

注意咱們使用的是svn協議來完成svn庫的訪問

分組和文件夾權限的配置

實際開發中會使用不一樣的分組來分類svn帳號,進而實現權限控制
對用戶進行分組,authz文件中的[groups]下添加,多個組員之間用 「,」 隔開

[groups]
group1 = admin
group2 = root

上面就是把amdin分到group1組,root分到group2組
在[/]下添加

[/]
@group1= rw
@group2 = rw
* = r

能夠批量對組的權限進行控制

文件夾權限配置

假設咱們在版本庫根目錄下有兩個文件夾分別爲 user 和 project文件夾
如今設置user文件夾只有group1組的人員能夠進行讀寫,其餘用戶組只可讀,project文件夾只有group2組能夠讀寫,group1組只有讀權限,而且其餘用戶不可見(注意最後一行)
咱們能夠在authz文件中添加以下配置

[/user]
@group1 = rw
* = r

[/project]
@group2 = rw
@group1 = r
* =

注意:對文件夾權限進行配置的時候,倉庫裏有多少個文件夾, 就得爲每個文件夾都分配權限,否則不起做用

完~

相關文章
相關標籤/搜索