linux | 在ubuntu16.04上搭建svn服务器

本文介绍在如何在ubuntu16.04 的系统上搭建svn服务器以及可能遇到的问题。下面的操作都以root用户进行。

  1. 安装svn服务器软件subversion。
// 安装完成后的svn版本为 1.9.3,通过svn --version可以查看版本号
apt-get install subversion

  1. 初始化svn目录。

//创建测试目录 repo1

mkdir -p /home/svn/repo1

// 初始化svn测试目录

svnadmin create /home/svn/repo1

初始化后的svn目录如图所示

linux | 在ubuntu16.04上搭建svn服务器_第1张图片
image

访问svn常用的有两种协议 svn:// 和 svn+ssh:// 协议。下面分别进行介绍。

  1. 使用svn:// 协议主要需要配置conf目录下的三个文件。

1) svnserve.conf : repo1仓库svn服务配置文件


// 无认证用户不可以进行访问

anon-access = none

//认证用户有读写的权限

auth-access = write

//密码存放在passwd文件中

password-db = passwd

//认证权限存放在authz文件中

// 需要特别注意的是 所有配置的key都要顶格写,不然读取的时候会有问题,造成客户端无法读取仓库

authz-db = authz

2)authz : 用户权限配置文件


//groups 下存放分组下的用户 多个用户用,分割

[groups]

admin=harry,sally

//用相对路径表示要确定的目录 @组名 指定该组下所有用户的权限 也可以直接指定单个用户的权限

[/]

@admin=rw

3)passwd: 用户密码配置文件


//在users存放用户的密码,密码是明文存储的

[users]

harry = 111111

4 使用svn+ssh协议。使用这种方式将用ssh认证代替svn自身的认证,所以svn的conf目录无需修改任何东西,只要保证svn的用户有ssh登录的权限和对svn文件夹访问的权限就可以了。比较常见的做法是将用户放入一个用户组中,确保用户组对svn文件夹有访问权限。这样可以往用户组中添加多个用户,使多个用户都可以访问svn文件夹。


addgroup svngroup

useradd svn -m /home/svn -g svngroup

chown -R svn:svngroup /home/svn/repo1

chmod -R g+rws /home/svn/repo1

采用svn+ssh的方式,需要注意两个问题:

1)ssh端口,ssh端口建议采用默认的22端口,如果换成其他的端口,客户端要考虑是否好配置。

2) 在新建svn用户的时候,要为用户建立一个默认目录,不然使用windows svn客户端TortoiseSVN可能会出现无法登录的情况。

5 启动svn服务器


// -d 表示守护进程 -r 指定启动的根目录 --log-file 指定日志的位置

svnserve -d -r /home/svn --log-file=/var/log/svnserve.log

启动时要注意启动的根目录和访问目录是否匹配。例如启动指定了-r /home/svn/repo1,访问时使用 svn://svn@ip:/home/svn/repo1 是访问不到这个仓库的。

参考文档:SubVersion使用说明

你可能感兴趣的:(linux | 在ubuntu16.04上搭建svn服务器)