Ubuntu 搭建SVN服务

目录

1、安装SVN服务端

2、创建SVN版本库

3、修改SVN配置svnserve.conf

[3.1 配置文件介绍](#3.1 配置文件介绍)

[3.2 svnserve.conf配置](#3.2 svnserve.conf配置)

[3.3 authz配置设置用户读写权限](#3.3 authz配置设置用户读写权限)

[3.4 passwd配置 用户名密码](#3.4 passwd配置 用户名密码)

4、启动SVN服务

[4.1 配置开机启动](#4.1 配置开机启动)


1、安装SVN服务端

bash 复制代码
sudo apt-get install subversion

检查版本

bash 复制代码
sudo svn --version

2、创建SVN版本库

bash 复制代码
sudo mkdir /home/svn

sudo svnadmin create /home/svn/repo

3、修改SVN配置svnserve.conf

3.1 配置文件介绍

bash 复制代码
#配置文件目录
cd /home/svn/repo/conf

ls

authz  hooks-env.tmpl  passwd  svnserve.conf

authz:

作用:authz 文件用于定义版本库的访问控制权限。它指定了哪些用户或用户组可以访问哪些目录和文件,以及他们拥有的权限级别(如读取、写入或无访问权限)。

hooks-env.tmpl:

作用:hooks-env.tmpl 是一个模板文件,用于设置 SVN 钩子(hooks)的环境变量。钩子是 SVN 在特定事件#(如提交或更新)发生时自动执行的脚本。

passwd:

作用:passwd 文件存储 SVN 用户的密码信息。它通常与 authz 文件一起使用,来控制对 SVN 版本库的访问。

格式:该文件包含用户名和加密后的密码对。它应该被妥善保护,以防止未授权访问。

svnserve.conf:

作用:svnserve.conf 是 SVN 服务器的配置文件。它控制着 SVN 服务器的各种行为,包括认证、授权和版本库的位置。

重要设置:在这个文件中,您可以定义 realm(认证域)、密码文件(passwd)、授权文件(authz)的位置,以及是否使用匿名访问等。

3.2 svnserve.conf配置

bash 复制代码
sudo vi svnserve.conf

anon-access = read 【控制非鉴权用户访问版本库的权限】

auth-access = write 【控制鉴权用户访问版本库的权限】

password-db = passwd 【指定用户名口令文件名,即访问时要输用户名和密码】

authz-db = authz

realm = /MyBackup/svn/MyBackups 【指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库】

多个svn库相同权限可以password-db指向同一个密码文件和authz-db指向同一个权限文件。

authz-db = ../../conf/authz

password-db = ../../conf/passwd

3.3 authz配置设置用户读写权限

bash 复制代码
sudo vi authz

3.4 passwd配置 用户名密码

bash 复制代码
sudo vi passwd

4、启动SVN服务

bash 复制代码
sudo svnserve -d -r /home/svn/

# 查看SVN服务状态命令

ps aux|grep svnserve

# 杀死SVN进程 

sudo killall svnserve

4.1 配置开机启动

bash 复制代码
#创建一个新的systemd服务文件。
vi /etc/systemd/system/svnserve.service


#添加以下内容到文件中:
[Unit]
Description=Subversion protocol daemon
After=network.target
 
[Service]
Type=forking
 
ExecStart=svnserve -d -r //svn
 
[Install]
WantedBy=multi-user.target
bash 复制代码
#重新加载systemd管理器的配置
systemctl daemon-reload
#启用svnserve服务以在开机时自动启动
systemctl enable svnserve.service
#立即启动svnserve服务而不需要重启
systemctl start svnserve.service
#检查svnserve服务状态
systemctl status svnserve.service

查看日志需要如下启动

svnserve -d -r /data/svn --log-file=/data/svn/repo/svnserve.log

相关推荐
minji...12 分钟前
Linux相关工具vim/gcc/g++/gdb/cgdb的使用详解
linux·运维·服务器·c++·git·自动化·vim
web安全工具库16 分钟前
Linux 高手进阶:Vim 核心模式与分屏操作详解
linux·运维·服务器·前端·数据库
egoist202325 分钟前
[linux仓库]信号产生[进程信号·贰]
linux·键盘·系统调用·信号产生·软件条件
河藕Hou2 小时前
Linux - 磁盘/逻辑卷的分区&格式化&挂载
linux
半桔2 小时前
【网络编程】网络通信基石:从局域网到跨网段通信原理探秘
linux·运维·网络协议·php
叫我詹躲躲2 小时前
Linux 服务器磁盘满了?教你快速找到大文件,安全删掉不踩坑!
linux·前端·curl
叫我詹躲躲2 小时前
3 分钟搞定 Linux 磁盘清理:实用命令 + 自动脚本,新手也会
linux·curl
Garc2 小时前
Zookeeper删除提供者服务中的指定IP节点
linux·运维·服务器
过往入尘土2 小时前
Linux:虚拟世界的大门
linux·人工智能
Wang's Blog3 小时前
Linux小课堂: Linux 系统的多面性与 CentOS 下载指南
linux·运维·centos