Centos搭建SVN服務(wù)器及配置文件
查端口
ps -ef|grep svn|grep -v grep
1、安裝
yum install subversion
判斷是否安裝成功码荔,yum安裝結(jié)束時會顯示版本
svnserve, version 1.6.11 (r934486)
出現(xiàn)上面的提示,說明安裝成功感挥。
有了SVN軟件后還需要建立SVN庫缩搅。
mkdir -p /opt/svn/repos
svnadmin create /opt/svn/repos
執(zhí)行上面的命令后,自動在repos下建立多個文件触幼, 分別是conf, db,format,hooks, locks, README.txt硼瓣。
2、配置
上面的操作很簡單置谦,幾個命令就搞定, 下面的操作也不難堂鲤。
進入上面生成的文件夾conf下亿傅,進行配置, 有以下幾個文件authz, passwd, svnserve.conf
其中authz 是權(quán)限控制,可以設(shè)置哪些用戶可以訪問哪些目錄, passwd是設(shè)置用戶和密碼的, svnserve是設(shè)置svn相關(guān)的操作瘟栖。
快捷鍵-快速刪除文件所有內(nèi)容
在還不是插入模式時葵擎,
shift+v,
shift+g,
shift+g,
全選所有內(nèi)容慢宗,最后delete鍵就可以了
2.1先設(shè)置passwd
[users]
# harry = harryssecret
# sally = sallyssecret
hello=123
#用戶名=密碼
這樣我們就建立了hello用戶坪蚁, 123密碼
2.2 再設(shè)置權(quán)限authz
[groups]
admin=hello
[/]
hello=rw
* = r
權(quán)限只配置用戶名即可奔穿,把hello用戶更改為自己的用戶名就行了镜沽。
意思是hello用戶對所有的目錄有讀寫權(quán)限,當(dāng)然也可以限定贱田。
如果是自己用缅茉,就直接是讀寫吧。
2.3最后設(shè)定snvserv.conf(直接復(fù)制general那里的就可以了男摧,不需要修改)
anon-access = none # 使非授權(quán)用戶無法訪問
auth-access = write # 使授權(quán)用戶有寫權(quán)限
password-db = passwd
authz-db = authz # 訪問控制文件
realm = /opt/svn/repos #認(rèn)證命名空間
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
蔬墩,subversion會在認(rèn)證提示里顯示,并且作為憑證緩存的關(guān)鍵字耗拓。
采用默認(rèn)配置. 以上語句都必須頂格寫, 左側(cè)不能留空格, 否則會出錯.
好了拇颅,通過以上配置,你的svn就可以了乔询。
3樟插、連接
啟動svn:
svnserve -d -r /opt/svn/repos
如果已經(jīng)有svn在運行,可以換一個端口運行
svnserve -d -r /opt/svn/repos --listen-port 33691
這樣同一臺服務(wù)器可以運行多個svnserver
注:同步到web目錄下
進入hooks目錄(/opt/svn/repos/hooks)下竿刁,復(fù)制post-commit.tmpl 到post-commit
cp post-commit.tmpl post-commit
編輯post-commit文件
vi post-commit
并修改成(那行#!/bin/bash也要復(fù)制)
#!/bin/bash
export LANG="zh_CN.UTF-8"
svn update /var/www/html --username USER --password PASSWORD
ps:vi編輯器下黄锤,V + GG + D 刪除文件全部內(nèi)容
修改完成后,更改post-commit權(quán)限為755食拜,使得文件有權(quán)限被執(zhí)行
chmod 755 post-commit
設(shè)置好之后鸵熟,在web目錄先checkout一次svn才能同步過來。進入web目錄下
cd /var/www/html //先進入到該目錄下负甸,才進行初始checkout操作
svn checkout svn://服務(wù)器ip:端口 /var/www/html --username USERNAME --password PASSWORD
過程會詢問授權(quán)流强,按照操作輸入yes 或者y 即可
svnserver修改配置文件后可以立即生效,不需要重啟服務(wù)呻待。
好了煮盼,啟動成功后,就可以使用了。
建議采用TortoiseSVN带污, 連接地址為: svn://your server address (如果指定端口需要添加端口 :端口號)
連接后可以上傳本地的文件僵控,有效的管理你的代碼。
svnserve是SVN自帶的一個輕型服務(wù)器鱼冀,客戶端通過使用以svn://或svn+ssh://為前綴的URL來訪問svnserve服務(wù)器报破,實現(xiàn)遠程訪問SVN版本庫悠就。
svnserve可以通過配置文件來設(shè)置用戶和口令,以及按路徑控制版本庫訪問權(quán)限充易。本文詳細分析了svnserve配置文件格式梗脾,并說明如何使用配置文件控制版本庫訪問權(quán)限。
本文介紹SVN的版本為1.4.4盹靴。
- svnserve配置文件概述
svnserve配置文件通常由以下3個文本文件組成:
svn服務(wù)配置文件炸茧,該文件版本庫目錄的conf目錄下,文件名為svnserve.conf稿静。
用戶名口令文件梭冠,該文件名在文件svnserve.conf中指定,缺省為同目錄下的passwd改备。
權(quán)限配置文件控漠,該文件名也在文件svnserve.conf中指定,缺省為同目錄下的authz悬钳。
- svn服務(wù)配置文件
svn服務(wù)配置文件為版本庫目錄中的文件conf/svnserve.conf盐捷。該文件僅由一個[general]配置段組成。
[general]配置段中配置行格式如下:
<配置項> = <值>
配置項分為以下5項:
anon-access 控制非鑒權(quán)用戶訪問版本庫的權(quán)限默勾。取值范圍為"write"碉渡、"read"和"none"。
即"write"為可讀可寫母剥,"read"為只讀滞诺,"none"表示無訪問權(quán)限。
缺省值:read
auth-access 控制鑒權(quán)用戶訪問版本庫的權(quán)限媳搪。取值范圍為"write"铭段、"read"和"none"。
即"write"為可讀可寫秦爆,"read"為只讀序愚,"none"表示無訪問權(quán)限。
缺省值:write
password-db 指定用戶名口令文件名等限。除非指定絕對路徑爸吮,否則文件位置為相對conf
目錄的相對路徑。
缺省值:passwd
authz-db 指定權(quán)限配置文件名望门,通過該文件可以實現(xiàn)以路徑為基礎(chǔ)的訪問控制形娇。
除非指定絕對路徑,否則文件位置為相對conf目錄的相對路徑筹误。
缺省值:authz
realm 指定版本庫的認(rèn)證域桐早,即在登錄時提示的認(rèn)證域名稱。若兩個版本庫的
認(rèn)證域相同,建議使用相同的用戶名口令數(shù)據(jù)文件哄酝。
缺省值:一個UUID(Universal Unique IDentifier友存,全局唯一標(biāo)示)。
【說明】版本庫認(rèn)證域
在使用svn客戶端訪問svnserve服務(wù)器時陶衅,若需要用戶登錄屡立,則提示信息如下:
[root@test root]# svn list svn://192.168.3.45/test
Authentication realm: svn://192.168.3.45:3690 0d545a49-4038-0410-99b4-c66dc73f754e
Password for 'root':
在上述第2行"Authentication realm: svn://192.168.3.45:3690"之后顯示的字符串為認(rèn)證域名稱。如果在配置文件中為設(shè)定認(rèn)證域搀军,就會提示一個UUID膨俐,如上述所示。
如果在配置文件中指定了如下配置項:
realm = test
將在svn客戶端提示如下:
[root@test root]# svn list svn://192.168.3.45/test
Authentication realm: svn://192.168.3.45:3690 test
Password for 'root':
例1:svn服務(wù)配置文件conf/svnserve.conf的內(nèi)容如下:
[general]
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz
realm = test
上述配置文件設(shè)定非鑒權(quán)用戶無權(quán)限訪問該版本庫罩句;鑒權(quán)用戶可對版本庫進行讀寫焚刺;用戶名口令文件為相對版本庫conf目錄的文件"../../conf /passwd";權(quán)限配置文件為相對版本庫conf目錄的文件"../../conf/authz"的止;版本庫的認(rèn)證域為"test"檩坚。
www.2cto.com
- 用戶名口令文件
用戶名口令文件由svnserve.conf的配置項password-db指定着撩,缺省為conf目錄中的passwd诅福。該文件僅由一個[users]配置段組成。
[users]配置段的配置行格式如下:
<用戶名> = <口令>
注意:配置行中的口令為未經(jīng)過任何處理的明文拖叙。
例2:用戶名口令文件conf/passwd的內(nèi)容如下:
[users]
admin = admin
thinker = 123456
該文件中配置了兩個用戶氓润,用戶名分別為"admin"和"thinker"。其中"admin"用戶的口令為"admin"薯鳍;"thinker"用戶的口令為"123456"咖气。
- 權(quán)限配置文件
權(quán)限配置文件由svnserve.conf的配置項authz-db指定,缺省為conf目錄中的authz挖滤。該配置文件由一個[groups]配置段和若干個版本庫路徑權(quán)限段組成崩溪。
[groups]配置段中配置行格式如下:
<用戶組> = <用戶列表>
用戶列表由若干個用戶組或用戶名構(gòu)成,用戶組或用戶名之間用逗號","分隔斩松,引用用戶組時要使用前綴"@"(如:引用用戶組"all"要使用字符串"@all")伶唯。
版本庫路徑權(quán)限段的段名格式如下:
[<版本庫名>:<路徑>]
如版本庫abc路徑/tmp的版本庫路徑權(quán)限段的段名為"[abc:/tmp]"。
可省略段名中的版本庫名惧盹。若省略版本庫名乳幸,則該版本庫路徑權(quán)限段對所有版本庫中相同路徑的訪問控制都有效。如:段名為"[/tmp]"的版本庫路徑權(quán)限段設(shè)置了所有引用該權(quán)限配置文件的版本庫中目錄"/tmp"的訪問權(quán)限钧椰。
版本庫路徑權(quán)限段中配置行格式有如下三種:
<用戶名> = <權(quán)限>
<用戶組> = <權(quán)限>
- = <權(quán)限>
其中粹断,"*"表示任何用戶;權(quán)限的取值范圍為''嫡霞、'r'和'rw'瓶埋,''表示對該版本庫路徑無任何權(quán)限,'r'表示具有只讀權(quán)限,'rw'表示有讀寫權(quán)限养筒。
注意:每行配置只能配置單個用戶或用戶組狡汉。
例3:權(quán)限配置文件conf/authz的內(nèi)容如下:
[groups]
g_admin = admin,thinker
[admintools:/]
@g_admin = rw
- =
[test:/home/thinker]
thinker = rw
- = r
在上述配置文件中,定義了一個用戶組"g_admin"闽颇,該用戶組包含用戶"admin"和"thinker"盾戴。然后定義了2個版本庫路徑權(quán)限段。 其中兵多,版本庫"admintools"只有用戶組"g_admin"可讀寫尖啡,其他用戶無任何權(quán)限;版本庫"test"中路徑"/home /thinker"只有用戶"thinker"有讀寫權(quán)限剩膘,其他用戶只有可讀權(quán)限衅斩。
- 總結(jié)
在本文中,詳細介紹了svnserve程序的3個配置文件怠褐。SVN管理員可以通過這3個配置文件設(shè)置svnserve服務(wù)的用戶名口令畏梆,以及對版本庫路徑的訪問權(quán)限。這些配置文件保存后就立即生效奈懒,不需要重啟svnserve服務(wù)奠涌。
需要強調(diào)的是本文介紹的配置文件只對svnserve服務(wù)有效,即客戶端通過前綴為svn://或svn+ssh://的URL訪問版本庫有效磷杏,而對通過前綴http://溜畅、https://或file:///的URL無效。