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通常会看到
conf、db、hooks、locks等目录,其中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 服务器后,建议注意以下安全事项:
- 禁止匿名访问,避免仓库被随意浏览。
- 使用强密码,避免用户密码过于简单。
- 按项目分配权限,避免所有用户拥有全部仓库权限。
- 定期备份仓库数据。
- 仅开放必要端口,避免暴露过多服务。
- 对重要项目启用访问日志审计。
总结
SVN 服务器搭建主要包括安装 SVN、创建仓库、配置用户、设置权限、启动服务和开放端口等步骤。通过 svnserve 可以快速搭建一个稳定易用的 SVN 服务,适合团队进行代码和文件版本管理。合理配置权限、加强密码安全并做好定期备份,是保证 SVN 服务器稳定运行的重要措施。