http://blog.csdn.net/thinkerABC/archive/2007/10/18/1831025.aspx
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://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
Authentication realm: <svn://192.168.3.45:3690> 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
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无效。
分享到:
相关推荐
2. **配置文件**:在SVN服务端,主要的配置文件是`svnserve.conf`(对于svnserve守护进程)和`httpd.conf`(对于基于Apache的服务)。`svnserve.conf`包含了如仓库路径、匿名访问权限、用户认证方式等设置。`httpd....
在基于svnserve配置的Subversion服务器中,管理员通常需要手动更改用户的密码,这可能对用户造成不便,特别是在大型团队协作环境中。本文将详细介绍如何通过JSP实现远程修改基于svnserve配置的Subversion服务器密码...
SVN仓库的配置主要通过两个关键文件进行:`svnserve.conf` 和 `hooks` 目录下的脚本。这些文件通常位于 SVN 服务器的仓库根目录下。 #### 1. `svnserve.conf` `svnserve.conf` 是 SVN 服务器的主要配置文件,它...
可以通过修改 svnserve.conf 文件来配置用户和权限。例如,设置 anon-access = none,表示未验证用户无任何权限。 知识点 6: 运行独立服务器 运行独立服务器是 SVN 服务器的最后一步。可以使用 svnservice.exe ...
- `svnserve.conf`:这是SVN服务器的配置文件,主要用于配置SVN服务的行为,例如访问控制、匿名访问等。通常位于SVN服务器的安装目录下。 - `authz`:这个文件定义了用户和组的访问权限,可以精细到仓库、目录甚至...
svnserve.conf
这个"svn配置文件.jar"很可能是一个包含了Subversion服务器或客户端配置信息的Java归档文件。下面将详细介绍SVN的基本概念、配置文件的作用以及如何处理和理解.jar文件。 1. SVN基本概念: - 版本控制:SVN允许...
4. **配置svnserve**:编辑`/home/svn/conf/svnserve.conf`来配置svnserve服务。 5. **配置Apache**:编辑`/etc/httpd/conf/httpd.conf`以启用SVN模块,并配置`/etc/httpd/conf.d/vs.conf`来指定版本库位置和其他...
- `auth`目录:存储认证凭据,如`passwd`文件(用户账户和密码)和`svnserve.conf`(用于svnserve服务的配置)。 3. **配置文件内容**: - `config`文件中的关键选项有`auto-props`,定义文件类型的自动属性;`...
首先,我们需要了解Subversion仓库的权限配置文件`svnserve.conf`。这个文件位于Subversion服务器的`conf`目录下,通常是在`/var/lib/svn/repositories/your-repo/conf`路径中(这里的`your-repo`是你仓库的名字)。...
单库配置是指每个SVN库都使用自己的配置文件,一般这些配置文件如authz、passwd、svnserve.conf都位于各自版本库的conf目录下。而多库配置则是多个库共享同一套配置文件,这通常意味着需要将某个版本库的conf目录...
每个版本库都有自己的配置文件,位于`conf/svnserve.conf`。打开这两个配置文件,例如对于repos1: ```bash vi /opt/svndata/repos1/conf/svnserve.conf ``` 内容应设置为: ``` [general] anon-access = none auth-...
对于svnserve,你需要创建仓库目录,配置`svnserve.conf`文件,然后启动svnserve服务。 一旦服务器配置完成,你就可以在CSVN客户端中连接到Subversion仓库,创建新的项目,导入文件,提交更改,查看历史记录,分支...
这个文件通常位于`conf`目录下,与`svnserve.conf`或`httpd.conf`等其他配置文件并列。`authz`文件的语法支持允许、拒绝、继承和通配符规则,使得权限设置灵活且可扩展。 二、`authz`文件格式 `authz`文件的每一行...
### SVN权限控制详解 ...通过合理配置`svnserve.conf`文件,并结合`authz`和`passwd`文件的使用,可以实现细粒度的权限管理。这对于保护版本库的安全性和完整性至关重要,同时也是配置管理员必须掌握的核心技能之一。
svnserve.conf 文件用于配置 SVN 服务,例如设置匿名用户的访问权限、授权用户的写权限等。 五、启动 SVN 服务 使用 `svnserve` 命令启动 SVN 服务,例如 `svnserve -d -r /home/svn`。启动服务后,可以使用 `ps -...
- **svnserve.conf配置**:此文件位于SVN安装目录下的`conf`子目录中,用于配置SVN服务器的基本行为。 - `anon-access=none`:禁止匿名访问,确保只有授权用户才能访问仓库。 - `auth-access=write`:允许认证用户...
3. **配置权限文件**:在`SVNRepository/conf`目录下编辑`authz`、`passwd`和`svnserve.conf`文件,根据需求设置权限规则。 4. **启动SVN服务**:根据实际情况启动svnservice服务或配置Apache服务器支持SVN服务。 5....
这通常发生在解析`svnserve.conf`配置文件时,系统期待一个选项但没有找到它,或者格式有误。此错误多源于配置文件中的语法问题,如缺少参数、格式错误或注释不当。 **解决方法:** 1. **检查配置文件语法**:确保...