從Windows遷移SVN數據到CentOS7(三)

CentOS服務器的掛載磁盤,請參考  從Windows遷移SVN數據到CentOS7(一)

從Window服務器遷移SVN數據到CentOS,請參考 從Windows遷移SVN數據到CentOS7(二)

SVN相比Git來說擁有更加細粒度的權限控制,話不多說,我們馬上接下來的配置。


三、創建、授權用戶

1.首先我們找到SVN版本庫下對應的配置文件 ~/conf/svnserve.conf,

vi /svn/Project20181022/conf/svnserve.conf

說明:對於授權用戶與未被授權用戶的訪問級別控制:read,write,none

我們修改對應位置如下(注意去掉#號,頂格縮進):

anon-access = none
auth-access = write

說明:password-db字段,爲配置密碼數據文件的保存位置,默認爲相對路徑,如果以/開頭則爲絕對路徑,如果SSL開啓的話,那麼就不會驗證該文件。

這裏我們不使用默認生成的“passwd”,用自己新建的文件代替(配置SSL會用到),該文件在接下來會被創建

password-db = /svn/svn_http_passwd

說明:authz-db字段,爲用戶數據文件的保存位置,默認爲相對路徑,如果以/開頭則爲絕對路徑,如果未指定路徑,則無訪問控制。

這裏我們依舊不使用默認生成的“authz”,用自己新建的文件代替(配置SSL會用到),該文件在接下來會被創建

authz-db = /svn/svn_authz

說明:realm 字段,此選項指定存儲庫的身份驗證域。 如果兩個存儲庫具有相同的身份驗證域,則它們應具有相同的密碼數據庫,反之亦然。 默認域是repository的uuid。

這裏如果項目符合上述要求的的話,需要去掉“#”號,配置兩個相同的身份驗證域,使配置生效,否則無需更改。

2.配置SSL

修改(沒有該文件則新增) vi /etc/httpd/conf.d/subversion.conf,修改配置如下(Tip爲說明,配置時請去掉)

<Location  /svn>
    DAV  svn
    SVNParentPath /svn
    SVNListParentPath on
    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /svn/svn_http_passwd   Tip:這是ssl的用戶文件,等下創建
    AuthzSVNAccessFile /svn/svn_authz  Tip:這是鑑權文件,等下創建
    Require valid-user
    SSLRequireSSL
</Location>

創建httpd用戶 -這裏會創建上面提到的 /svn/svn_http_passwd 文件(執行後需要輸入用戶密碼)

htpasswd -c /svn/svn_http_passwd turbo #創建apache用戶和密碼文件,已有文件則把-c去掉

以後加用戶就直接使用下面代碼段

htpasswd /svn/svn_http_passwd user123 #user123爲你要添加的用戶名

③ 增加svn用戶權限文件 -這裏會創建上面提到的 /svn/svn_authz 文件

vi /svn/svn_authz 

[groups]
ROOT = master   # 用戶組,多個用戶用逗號隔開
UNITY = turbo
SERVER = server  #master,server用戶此時並沒有創建,只是拎出來做一下演示

[Project20181022:/]  # 設置xxx庫的權限
@ROOT = rw  # ROOT組裏的用戶對根目錄有讀寫權限

[Project20181022:/Unity]
@UNITY = rw

[Project20181022:/Server]
@SERVER = rw

生成本地證書,配製https

cd /etc/pki/tls/private
openssl genrsa -out svn.key 1024 #生成私鑰

openssl req -new -key svn.key -out svn.csr #生成證書

cd /etc/pki/tls/certs
openssl x509 -req -days 365 -in /etc/pki/tls/private/svn.csr -signkey /etc/pki/tls/private/svn.key -out svn.crt   #簽名

⑤ 修改ssl配置文件:

vi /etc/httpd/conf.d/ssl.conf   #修改下面的配置項(就是剛纔上面步驟創建的crt和key文件)
    SSLCertificateFile /etc/pki/tls/certs/svn.crt
    SSLCertificateKeyFile /etc/pki/tls/private/svn.key

⑥ 授予apache用戶組 對/svn目錄的 擁有者權限

chown -R apache:apache /svn/

⑦ 修改selinux權限,不然Apache只能訪問www目錄,其他地方的文件會訪問失敗:

chcon -R -t httpd_sys_rw_content_t  /svn/

⑧ 打開防火牆端口

firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

 啓動服務

svnserve -d -r /svn
service httpd start

⑩ 加入開機啓動項,如果之前不存在 rc.local,在創建該文件後需要執行: chmod +x /etc/rc.d/rc.local 賦予可執行權限

vi /etc/rc.d/rc.local #末尾增加以下配置
        /usr/bin/svnserve -d -r /svn
        /usr/sbin/service httpd start

好了,到這一步我們的SVN服務器就基本配置完成了,下一章節我們將驗證小烏龜的連接和整理一些踩坑記錄。

THE END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章