SVN安装

先检查系统中是否存在svn

svn --version

若不存在则会报告svn命令找不到的错误(svn: command not found)

使用如下命令进行安装

 yum install subversion

安装成功之后,执行 svn --version 命令

至此,SVN安装完成

SVN服务开启

手动新建版本库目录

mkdir /opt/svn

利用svn命令创建版本库

svnadmin create /opt/svn/库名

使用命令svnserve启动服务

svnserve -d -r 目录 --listen-port 端口号
  • -r: 配置方式决定了版本库访问方式。
  • --listen-port: 指定SVN监听端口,不加此参数,SVN默认监听3690
  • 需要在服务器安全中放开3690端口

扩展:关闭svn服务命令

killall svnserve

由于-r 配置方式的不一样,SVN启动就可以有两种不同的访问方式

方式一:-r直接指定到版本库(称之为单库svnserve方式)

svnserve -d -r /opt/svn/库名

在这种情况下,一个svnserve只能为一个版本库工作。

authz配置文件中对版本库权限的配置应这样写:

(user1属于admin组,user2属于dev组,在svn的根目录(不是Linux的)下,admin组有读写权限,user2有读的权限)

[groups]
admin=user1
dev=user2
[/]
@admin=rw
user2=r

使用类似这样的URL:svn://192.168.0.1/ 即可访问 该库名下的 版本库

方式二:指定到版本库的上级目录(称之为多库svnserve方式)

svnserve -d -r /opt/svn

这种情况,一个svnserve可以为多个版本库工作

authz配置文件中对版本库权限的配置应这样写:

(user1属于admin组,user2属于dev组,设置库1的权限admin组有读写权限,user2有读的权限,设置库2的权限admin组有读写权限,user2有读的权限)

[groups]
admin=user1
dev=user2
[库1:/]
@admin=rw
user2=r

[库2:/]
@admin=rw
user2=r

如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录。

使用类似这样的URL:svn://192.168.0.1/库1 即可访问 库1 版本库。

SVN版本库的配置

使用 svn 命令创建资源库:

svnadmin create /opt/svn/库1

进入 /opt/svn/库1/conf 目录,修改默认配置文件配置,包括 svnserve.conf、passwd、authz 配置相关用户和权限。

1、svn 服务配置文件 svnserve.conf

svn 服务配置文件为版本库目录中的文件 conf/svnserve.conf。该文件仅由一个 [general] 配置段组成。

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
#realm = 
  • anon-access: 控制非鉴权用户访问版本库的权限,取值范围为 "write"、"read" 和 "none"。 即 "write" 为可读可写,"read" 为只读,"none" 表示无访问权限,默认值:read。
  • auth-access: 控制鉴权用户访问版本库的权限。取值范围为 "write"、"read" 和 "none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限,默认值:write。
  • authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径,默认值:authz。
  • realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件。默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)。

2、账号设置文件 passwd

[users] 配置段的配置行格式如下:

账号 = 密码

#例:

[users]
admin = admin
thinker = 123456
user1 = 111

3、权限配置文件authz

#在存在两个svn版本库,分别为 库1 , 库2

(user1属于admin组,user2属于dev组,设置库1的权限admin组有读写权限,除admin组其他人只有读的权限,设置库2的权限admin组有读写权限,user2有读的权限)

[groups]
admin=user1
dev=user2
[库1:/]
@admin=rw
* = r

[库2:/]
@admin=rw
user2=r

[groups]
admin=user1
dev=user2
[/]
@admin=rw
user2=r

此时还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录。

使用类似这样的URL:svn://192.168.0.1/库1 即可访问 库1 版本库。

参考

SVN 教程 | 菜鸟教程 (runoob.com)

配置svn用户及权限 - minger_lcm - 博客园 (cnblogs.com)

(13条消息) SVN authz 配置详解 转载4911071420313-CSDN博客authz svn