svnserver配置文件详解

吴晓如 2017-04-20 21:17:06 14134 收藏 3

分类专栏: ☆ 项目实战

版权

☆ 项目实战

专栏收录该内容

8 篇文章 0 订阅

订阅专栏

前言:

昨天晚上我们的一个项目出现了点问题,说看不了版本日志,从网上查找原因说把配置文件 svnserve.conf中的anon-access的值改为none,当时改完之后没问题了,也没有多想,今天又想起这个问题,不能只知其一,应该明白anon-access是干嘛的,为什么要改为none,今天就查了一些资料,下面详细介绍下。

介绍:

svnserve是SVN自带的轻型服务器,客户端通过使用svn://或svn+ssh://为前缀的URL来访问svnserve服务器,实现远程访问svn版本库。

svnserve可以通过配置文件来设置用户和口令,,以及按路径控制版本库访问权限。

svnserve配置文件通常由3个文本文件组成:

(1)svn服务配置文件:在conf目录下,文件名为svnserve.conf

(2)用户名口令文件:在conf目录下,文件名为passwd

(3)权限配置文件,在conf目录下,文件名为authz

 

svnserve.conf文件:

该文件由一个[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,全局唯一标示)。

Demo:svn服务配置文件的内容如下:

 

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = /var/svn/Health_net_V1.0

说明:设定非鉴权用户无权限访问该版本库;鉴权用户可对版本库进行读写;用户名口令文件为conf目录下的passwd,权限配置文件为版本库conf目录下的authz,版本库的认证域为:/var/svn/Health_net_V1.0

passwd文件:

 

该文件由一个[users]配置段组成,格式:<用户名>=<口令> 注:口令为未经过任何处理的明文。

Demo:

 

[users]

admin = admin

wuxiaoru = anne

 

说明:该文件中配置了两个用户admin和wuxiaoru,口令分别为:admin和anne。

authz文件:

该文件由[groups]配置段和若干版本库路径权限段组成

[groups]配置段格式:<用户组>=<用户列表>

用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号","分隔,引用用户组时要使用前缀"@"

 

版本库路径权限段格式:

[<版本库名>:<路径>]如版本库abc路径/tmp的版本库路径权限段的段名为"[abc:/tmp]"。

可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:[/tmp]

版本库路径权限段中配置行格式有如下三种:

<用户名> = <权限>

<用户组> = <权限>

* = <权限>

其中,"*"表示任何用户;权限的取值范围为''、'r'和'rw',''表示对该版本库路径无任何权限,'r'表示具有只读权限,'rw'表示有读写权限。

注意:每行配置只能配置单个用户或用户组。

Demo:

[groups]

tt = admin,wuxiaoru

[itoo_ner:/trunck]

@tt= rw

* =

[/branches/basic]

wuxiaoru = rw

* = r

 

总结:

在本文中,详细介绍了svnserve程序的3个配置文件。SVN管理员可以通过这3个配置文件设置svnserve服务的用户名口令,以及对版本库路径的访问权限。这些配置文件保存后就立即生效,不需要重启svnserve服务。

————————————————