svnserve是svn自帶的乙個輕型伺服器,客戶端通過使用以svn://或svn+ssh://為字首的url來訪問svnserve伺服器,實現遠端訪問svn版本庫。
svnserve可以通過配置檔案來設定使用者和口令,以及按路徑控制版本庫訪問許可權。本文詳細分析了svnserve配置檔案格式,並說明如何使用配置檔案控制版本庫訪問許可權。
本文介紹svn的版本為1.4.4。
1) svnserve配置檔案概述
svnserve配置檔案通常由以下3個文字檔案組成:
svn服務配置檔案,該檔案版本庫目錄的conf目錄下,檔名為svnserve.conf。
使用者名稱口令檔案,該檔名在檔案svnserve.conf中指定,預設為同目錄下的passwd。
許可權配置檔案,該檔名也在檔案svnserve.conf中指定,預設為同目錄下的authz。
2) svn服務配置檔案
svn服務配置檔案為版本庫目錄中的檔案conf/svnserve.conf。該檔案僅由乙個[general]配置段組成。
[general]配置段中配置行格式如下:
《配置項》 = 《值》
配置項分為以下5項:
anon-access 控制非鑑權使用者訪問版本庫的許可權。取值範圍為"write"、"read"和"none"。
即"write"為可讀可寫,"read"為唯讀,"none"表示無訪問許可權。
預設值:read
auth-access 控制鑑權使用者訪問版本庫的許可權。取值範圍為"write"、"read"和"none"。
即"write"為可讀可寫,"read"為唯讀,"none"表示無訪問許可權。
預設值:write
password-db 指定使用者名稱口令檔名。除非指定絕對路徑,否則檔案位置為相對conf
目錄的相對路徑。
預設值:passwd
authz-db 指定許可權配置檔名,通過該檔案可以實現以路徑為基礎的訪問控制。
除非指定絕對路徑,否則檔案位置為相對conf目錄的相對路徑。
預設值:authz
realm 指定版本庫的認證域,即在登入時提示的認證網域名稱稱。若兩個版本庫的
認證域相同,建議使用相同的使用者名稱口令資料檔案。
預設值:乙個uuid(universal unique identifier,全域性唯一標示)。
【說明】版本庫認證域
在使用svn客戶端訪問svnserve伺服器時,若需要使用者登入,則提示資訊如下:
[root@test root]# svn list svn:
authentication realm: 0d545a49-4038-0410-99b4-c66dc73f754e
password for 'root':
在上述第2行"authentication realm: "之後顯示的字串為認證網域名稱稱。如果在配置檔案中為設定認證域,就會提示乙個uuid,如上述所示。
如果在配置檔案中指定了如下配置項:
realm = test
將在svn客戶端提示如下:
[root@test root]# svn list svn:
authentication realm: test
password for 'root':
例1:svn服務配置檔案conf/svnserve.conf的內容如下:
[general]
anon-access = none
auth-access = write
password-db =
authz-db =
realm = test
上述配置檔案設定非鑑權使用者無許可權訪問該版本庫;鑑權使用者可對版本庫進行讀寫;使用者名稱口令檔案為相對版本庫conf目錄的檔案"";許可權配置檔案為相對版本庫conf目錄的檔案"";版本庫的認證域為"test"。
3) 使用者名稱口令檔案
使用者名稱口令檔案由svnserve.conf的配置項password-db指定,預設為conf目錄中的passwd。該檔案僅由乙個[users]配置段組成。
[users]配置段的配置行格式如下:
《使用者名稱》 = 《口令》
注意:配置行中的口令為未經過任何處理的明文。
例2:使用者名稱口令檔案conf/passwd的內容如下:
[users]
admin = admin
thinker = 123456
該檔案中配置了兩個使用者,使用者名稱分別為"admin"和"thinker"。其中"admin"使用者的口令為"admin";"thinker"使用者的口令為"123456"。
4) 許可權配置檔案
許可權配置檔案由svnserve.conf的配置項authz-db指定,預設為conf目錄中的authz。該配置檔案由乙個[groups]配置段和若干個版本庫路徑許可權段組成。
[groups]配置段中配置行格式如下:
《使用者組》 = 《使用者列表》
使用者列表由若干個使用者組或使用者名稱構成,使用者組或使用者名稱之間用逗號","分隔,引用使用者組時要使用字首"@"(如:引用使用者組"all"要使用字串"@all")。
版本庫路徑許可權段的段名格式如下:
[《版本庫名》:《路徑》]
如版本庫abc路徑/tmp的版本庫路徑許可權段的段名為"[abc:/tmp]"。
可省略段名中的版本庫名。若省略版本庫名,則該版本庫路徑許可權段對所有版本庫中相同路徑的訪問控制都有效。如:段名為"[/tmp]"的版本庫路徑許可權段設定了所有引用該許可權配置檔案的版本庫中目錄"/tmp"的訪問許可權。
版本庫路徑許可權段中配置行格式有如下三種:
《使用者名稱》 = 《許可權》
《使用者組》 = 《許可權》
* = 《許可權》
其中,"*"表示任何使用者;許可權的取值範圍為''、'r'和'rw',''表示對該版本庫路徑無任何許可權,'r'表示具有唯讀許可權,'rw'表示有讀寫許可權。
注意:每行配置只能配置單個使用者或使用者組。
例3:許可權配置檔案conf/authz的內容如下:
[groups]
g_admin = admin,thinker
[admintools:/]
@g_admin = rw
* =[test:/home/thinker]
thinker = rw
* = r
在上述配置檔案中,定義了乙個使用者組"g_admin",該使用者組包含使用者"admin"和"thinker"。然後定義了2個版本庫路徑許可權段。其中,版本庫"admintools"只有使用者組"g_admin"可讀寫,其他使用者無任何許可權;版本庫"test"中路徑"/home/thinker"只有使用者"thinker"有讀寫許可權,其他使用者只有可讀許可權。
5) 總結
在本文中,詳細介紹了svnserve程式的3個配置檔案。svn管理員可以通過這3個配置檔案設定svnserve服務的使用者名稱口令,以及對版本庫路徑的訪問許可權。這些配置檔案儲存後就立即生效,不需要重啟svnserve服務。
需要強調的是本文介紹的配置檔案只對svnserve服務有效,即客戶端通過字首為svn://或svn+ssh://的url訪問版本庫有效,而對通過字首http://、https://或file:///的url無效。
**:
配置檔案詳解
config目錄下有2個配置檔案 es的配置檔案 elasticsearch.yml 和日誌配置檔案 logging.yml cluster.name elasticsearch 配置es的集群名稱,預設是elasticsearch,es會自動發現在同一網段下的es,如果在同一網段下有多個集群,就可...
OpenSSH 配置檔案詳解
第1章 openssh 安全網路通訊 本章要點 關於openssh openssh客戶端 起步 使用ssh和scp openssh伺服器sshd 起步 啟動sshd守護程序 授權金鑰 自動化登入 故障診斷 隧道技術與埠 openssh是一套安全網路連線工具,用來取代telnet rcp rsh rs...
yum配置檔案詳解
yum的配置檔案 yum的一切配置資訊都儲存在乙個叫yum.conf的配置檔案中,通常位於 etc目 錄下,這是整個yum系統的重中之重,所以有必要詳細介紹。下面是乙個從網上找來的yum.con檔案,讓我們以此為例,進行說明。引用 第一部分 配置repository伺服器了,這是最令人激動的,有了好...