svnrver配置⽂件详解
svnrve是SVN⾃带的⼀个轻型服务器,客户端通过使⽤以svn://或svn+ssh://为前缀的URL来访问svnrve服务器,实现远程访问SVN版本库。
svnrve可以通过配置⽂件来设置⽤户和⼝令,以及按路径控制版本库访问权限。本⽂详细分析了svnrve配置⽂件格式,并说明如何使⽤配置⽂件控制版本库访问权限。
本⽂介绍SVN的版本为1.4.4。
1) svnrve配置⽂件概述
旅游英语svnrve配置⽂件通常由以下3个⽂本⽂件组成:
svn服务配置⽂件,该⽂件版本库⽬录的conf⽬录下,⽂件名为f。
⽤户名⼝令⽂件,该⽂件名在⽂件f中指定,缺省为同⽬录下的passwd。
权限配置⽂件,该⽂件名也在⽂件f中指定,缺省为同⽬录下的authz。
2) svn服务配置⽂件
svn服务配置⽂件为版本库⽬录中的⽂件f。该⽂件仅由⼀个[general]配置段组成。
[general]配置段中配置⾏格式如下:
<;配置项> = <;值>
mindy gledhill
配置项分为以下5项:
anon-access 控制⾮鉴权⽤户访问版本库的权限。取值范围为"write"、"read"和"none"。
即"write"为可读可写,"read"为只读,"none"表⽰⽆访问权限。
缺省值:read
auth-access 控制鉴权⽤户访问版本库的权限。取值范围为"write"、"read"和"none"。
即"write"为可读可写,"read"为只读,"none"表⽰⽆访问权限。
缺省值:write
elemepassword-db 指定⽤户名⼝令⽂件名。除⾮指定绝对路径,否则⽂件位置为相对conf
⽬录的相对路径。
缺省值:passwd
authz-db 指定权限配置⽂件名,通过该⽂件可以实现以路径为基础的访问控制。
除⾮指定绝对路径,否则⽂件位置为相对conf⽬录的相对路径。
缺省值:authz
realm 指定版本库的认证域,即在登录时提⽰的认证域名称。若两个版本库的
认证域相同,建议使⽤相同的⽤户名⼝令数据⽂件。
缺省值:⼀个UUID(Universal Unique IDentifier,全局唯⼀标⽰)。
【说明】版本库认证域
在使⽤svn客户端访问svnrve服务器时,若需要⽤户登录,则提⽰信息如下:
[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>"之后显⽰的字符串为认证域名称。如果在配置⽂件中为设定认证域,就会提⽰⼀个UUID,如上述所⽰。
如果在配置⽂件中指定了如下配置项:
realm = test
将在svn客户端提⽰如下:
[root@test root]# svn list svn://192.168.3.45/test
[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服务配置⽂件f的内容如下:
[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) ⽤户名⼝令⽂件
⽤户名⼝令⽂件由f的配置项password-db指定,缺省为conf⽬录中的passwd。该⽂件仅由⼀个[urs]配置段组成。
put up
[urs]配置段的配置⾏格式如下:
<⽤户名> = <⼝令>
注意:配置⾏中的⼝令为未经过任何处理的明⽂。
例2:⽤户名⼝令⽂件conf/passwd的内容如下:
[urs]
admin = admin
thinker = 123456
该⽂件中配置了两个⽤户,⽤户名分别为"admin"和"thinker"。其中"admin"⽤户的⼝令为"admin";"thinker"⽤户的⼝令为"123456"。
4) 权限配置⽂件
权限配置⽂件由f的配置项authz-db指定,缺省为conf⽬录中的authz。该配置⽂件由⼀个[groups]配置段和若⼲个版本库路径权限段组成。
[groups]配置段中配置⾏格式如下:
<⽤户组> = <⽤户列表>英孚教育网站
⽤户列表由若⼲个⽤户组或⽤户名构成,⽤户组或⽤户名之间⽤逗号","分隔,引⽤⽤户组时要使⽤前缀"@"(如:引⽤⽤户组"all"要使⽤字符串"@all")。
版本库路径权限段的段名格式如下:
one take[<;版本库名>:<;路径>]
如版本库abc路径/tmp的版本库路径权限段的段名为"[abc:/tmp]"。
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为"[/tmp]"的版本库路径权限段设置了所有引⽤该权限配置⽂件的版本库中⽬录"/tmp"的访问权限。
版本库路径权限段中配置⾏格式有如下三种:
<⽤户名> = <;权限>
<⽤户组> = <;权限>
* = <;权限>
其中,"*"表⽰任何⽤户;权限的取值范围为''、'r'和'rw',''表⽰对该版本库路径⽆任何权限,'r'表⽰具有只读权限,'rw'表⽰有读写权限。注意:每⾏配置只能配置单个⽤户或⽤户组。
例3:权限配置⽂件conf/authz的内容如下:
[groups]
g_admin = admin,thinker
[admintools:/]故事书的英文
[admintools:/]
@g_admin = rw
* =关于食物的英语单词
[test:/home/thinker]
出国口语
thinker = rw
* = r
在上述配置⽂件中,定义了⼀个⽤户组"g_admin",该⽤户组包含⽤户"admin"和"thinker"。然后定义了2个版本库路径权限段。其中,版本库"admintools"只有⽤户组"g_admin"可读写,其他⽤户⽆任何权限;版本库"test"中路径"/home/thinker"只有⽤户"thinker"有读写权限,其他⽤户只有可读权限。
5) 总结
在本⽂中,详细介绍了svnrve程序的3个配置⽂件。SVN管理员可以通过这3个配置⽂件设置svnrve服务的⽤户名⼝令,以及对版本库路径的访问权限。这些配置⽂件保存后就⽴即⽣效,不需要重启svnrve服务。
需要强调的是本⽂介绍的配置⽂件只对svnrve服务有效,即客户端通过前缀为svn://或svn+ssh://的URL访问版本库有效,⽽对通过前缀、或file:///的URL⽆效。