svnserve是svn自帶的乙個輕型伺服器,客戶端通過使用以svn://或svn+ssh://為字首的url來訪問svnserve伺服器,實現遠端訪問svn版本庫。
svnserve可以通過配置檔案來設定使用者和口令,以及按路徑控制版本庫訪問許可權。本文詳細分析了svnserve配置檔案格式,並說明如何使用配置檔案控制版本庫訪問許可權。
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://localhost/test
authentication realm: 0d545a49-4038-0410-99b4-c66dc73f754e
password for 'root':
在上述第2行"authentication realm: "之後顯示的字串為認證網域名稱稱。如果在配置檔案中為設定認證域,就會提示乙個uuid,如上述所示。
如果在配置檔案中指定了如下配置項:
realm = test
將在svn客戶端提示如下:
[root@test root]# svn list svn://localhost/test
authentication realm: test
password for 'root':
例1:svn服務配置檔案conf/svnserve.conf的內容如下:
[general]
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz
realm = test
上述配置檔案設定非鑑權使用者無許可權訪問該版本庫;鑑權使用者可對版本庫進行讀寫;使用者名稱口令檔案為相對版本庫conf目錄的檔案"../../conf /passwd";許可權配置檔案為相對版本庫conf目錄的檔案"../../conf/authz";版本庫的認證域為"test"。
3) 使用者名稱口令檔案
使用者名稱口令檔案由svnserve.conf的配置項password-db指定,預設為conf目錄中的passwd。該檔案僅由乙個[users]配置段組成。
[users]配置段的配置行格式如下:
《使用者名稱》 = 《口令》
注意:配置行中的口令為未經過任何處理的明文。
例2:使用者名稱口令檔案conf/passwd的內容如下:
[users]
admin = admin
areskris = 123456
該檔案中配置了兩個使用者,使用者名稱分別為"admin"和"areskris"。其中"admin"使用者的口令為"admin";"areskris"使用者的口令為"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,areskris
[admintools:/]
@g_admin = rw
* =[test:/home/areskris]
areskris = rw
* = r
在上述配置檔案中,定義了乙個使用者組"g_admin",該使用者組包含使用者"admin"和"areskris"。然後定義了2個版本庫路徑許可權段。其中,版本庫"admintools"只有使用者組"g_admin"可讀寫,其他使用者無任何許可權;版本庫"test"中路徑"/home/areskris"只有 使用者"areskris"有讀寫許可權,其他使用者只有可讀許可權。
5) 總結
在本文中,詳細介紹了svnserve程式的3個配置檔案。svn管理員可以通過這3個配置檔案設定svnserve服務的使用者名稱口令,以及對版本庫路徑的訪問許可權。這些配置檔案儲存後就立即生效,不需要重啟svnserve服務。
需要強調的是本文介紹的配置檔案只對svnserve服務有效,即客戶端通過字首為svn://或svn+ssh://的url訪問版本庫有效,而對通過 字首http://、https://或file:///的url無效。
init配置檔案說明
linux 核心啟動之後,啟動的第乙個程序就是 init 程序。該程序從 etc inittab 檔案中讀取配置,對系統進行一系列的初始化工作。下面我們來分析一下 etc inittab 檔案的結構。inittab 檔案的每一行的基本格式如下所示 l3 3 wait etc rc.d rc 3可以看...
quartz 配置檔案說明
cron expression 與linux中的crontab有很大的不同,昨天差點迷惑了我。cron expression 由6到7個用空格分開的字段組成的表示式這6或7個字段必須遵循下面的順序和格式 seconds 0 59 minutes 0 59 hours 0 23 day of mont...
asterisk配置檔案說明
配置檔案說明列表 名稱 描述 asterisk.conf 主配置檔案,通知asterisk環境目錄位置,包含其他所有配置檔案所包含的目錄,預設asterisk會在 etc asterisk 目錄下找到,也可以通過命令引數使用不同的asterisk.conf zaptel.conf 配置板卡驅動,配置...