SVN服务器搭建:权限、备份与安全

互联网资讯

SVN服务器搭建:权限、备份与安全

2026-08-27 14:26


Linux下SVN服务器搭建、权限配置与服务启动教程

Svn服务器搭建

SVN(Subversion)是一款常用的集中式版本控制系统,适合团队进行源码、文档、配置文件的统一管理和版本追踪。与 Git 相比,SVN 更强调中心化存储和权限控制,常用于企业内部项目、文档协作、设计文件归档等场景。下面将介绍一套较为完整的 SVN 服务器搭建教程,适用于 Linux 服务器环境。

一、安装 SVN 服务

在 Ubuntu 或 Debian 系统中,可以使用以下命令安装 SVN:

sudo apt update
sudo apt install subversion -y

在 CentOS、Rocky Linux 或 AlmaLinux 系统中,可以使用:

sudo yum install subversion -y

安装完成后,可以检查 SVN 是否安装成功:

svn --version

如果正常显示版本号,说明 SVN 已经安装完成。

二、创建 SVN 仓库

首先创建一个用于存放 SVN 仓库的目录:

sudo mkdir -p /data/svn

然后创建一个新的 SVN 仓库,例如仓库名称为 project

sudo svnadmin create /data/svn/project

创建完成后,可以查看仓库目录结构:

ls /data/svn/project

通常会看到 confdbhookslocks 等目录,其中 conf 是配置目录,db 是核心数据库目录。

三、配置 SVN 用户

SVN 用户信息通常保存在仓库的 passwd 文件中。编辑配置文件:

sudo vim /data/svn/project/conf/passwd

添加用户,例如:

[users]
admin = 123456
developer = 123456

其中 admin 是管理员用户,developer 是普通开发用户。实际使用时建议使用更复杂的密码,提高安全性。

四、配置访问权限

编辑权限配置文件:

sudo vim /data/svn/project/conf/authz

可以设置不同用户对仓库目录的访问权限:

[/]
admin = rw
developer = rw

如果希望某些用户只能读取,不能修改,可以这样配置:

[/]
admin = rw
developer = r

权限说明:

  • rw:读写权限
  • r:只读权限
  • 不填写:无权限

五、配置 svnserve 服务

SVN 可以通过 svnserve 方式提供服务,配置比较简单。编辑仓库配置文件:

sudo vim /data/svn/project/conf/svnserve.conf

取消以下配置项的注释:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = project

说明:

  • anon-access = none:禁止匿名访问
  • auth-access = write:认证用户可写
  • password-db = passwd:指定用户密码文件
  • authz-db = authz:指定权限文件
  • realm = project:认证域名称,可自定义

六、启动 SVN 服务

可以使用以下命令启动 SVN 服务:

sudo svnserve -d -r /data/svn

启动后,可以通过以下地址访问仓库:

svn://服务器IP/project

例如服务器 IP 是 192.168.1.100,则访问地址为:

svn://192.168.1.100/project

如果需要让 SVN 服务开机自启动,可以使用 systemd 管理。

创建服务文件:

sudo vim /etc/systemd/system/svnserve.service

添加以下内容:

[Unit]
Description=Subversion protocol daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /data/svn
ExecStop=/usr/bin/killall svnserve
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后执行:

sudo systemctl daemon-reload
sudo systemctl enable svnserve
sudo systemctl start svnserve

查看服务状态:

sudo systemctl status svnserve

七、防火墙端口设置

SVN 默认使用 3690 端口。如果服务器开启了防火墙,需要放行该端口。

Ubuntu 使用 ufw:

sudo ufw allow 3690/tcp

CentOS 使用 firewalld:

sudo firewall-cmd --permanent --add-port=3690/tcp
sudo firewall-cmd --reload

如果服务器位于云服务器环境,还需要在云平台安全组中放行 3690 端口。

八、客户端检出项目

在客户端安装 SVN 工具后,可以使用命令行检出项目:

svn checkout svn://服务器IP/project

也可以使用 TortoiseSVN 图形化客户端。在 Windows 系统中,安装 TortoiseSVN 后,右键选择“SVN Checkout”,输入仓库地址、用户名和密码即可完成检出。

九、常用 SVN 命令

以下是一些常用命令:

检出仓库:

svn checkout svn://服务器IP/project

查看状态:

svn status

添加文件:

svn add 文件名

提交文件:

svn commit -m "提交说明"

更新代码:

svn update

查看日志:

svn log

十、SVN 数据备份

SVN 仓库的核心数据存放在 db 目录中,因此定期备份非常重要。可以使用以下命令打包备份:

sudo tar -czf project_backup.tar.gz /data/svn/project

备份文件建议保存到独立服务器或云存储中,避免服务器故障导致数据丢失。

十一、安全建议

搭建 SVN 服务器后,建议注意以下安全事项:

  1. 禁止匿名访问,避免仓库被随意浏览。
  2. 使用强密码,避免用户密码过于简单。
  3. 按项目分配权限,避免所有用户拥有全部仓库权限。
  4. 定期备份仓库数据。
  5. 仅开放必要端口,避免暴露过多服务。
  6. 对重要项目启用访问日志审计。

总结

SVN 服务器搭建主要包括安装 SVN、创建仓库、配置用户、设置权限、启动服务和开放端口等步骤。通过 svnserve 可以快速搭建一个稳定易用的 SVN 服务,适合团队进行代码和文件版本管理。合理配置权限、加强密码安全并做好定期备份,是保证 SVN 服务器稳定运行的重要措施。


标签: SVN服务器 svnserve 版本控制