杂谈 - SVN服务安装和管理

125 阅读2分钟

前言

对于小规模团队而言,svn比git要方便很多,特别是团队中的非技术人员来说,git的设定有些过于复杂了。下文主要介绍一下简单安装一个svn服务需要的步骤,和常见的管理功能,比如添加用户,权限等。

安装

  • 安装软件包:apt-get install subversion
  • 创建SVN 文件目录:svnadmin create --fs-type fsfs /home/opt/svn
  • 修改SVN 配置:修改/home/opt/svn/conf/svnserve.conf 文件
放开这些注释
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
  • 创建SVN 用户:修改/home/opt/svn/conf/passwd 文件
[users]
username1 = password1
username2 = password2
  • SVN 用户授权:修改/home/svn/conf/authz 文件
最后位置添加
[\]
username1 = rw
username2 = r
  • 启动SVN 服务:svnserve -d -r /home/opt/svn
  • 防火墙: sudo iptables -I INPUT 1 -p tcp --dport 3690 -j ACCEPT
  • SVN 地址:svn://ip/

安装异常

提示:invalid authz configuration

解决:authz文件配置错误,使用此文末尾的配置替换 svnserver.conf,重新启动。

SVN服务管理

  • SVN地址:svn://192.168.105.18/barbie
  • 启动方式:svnserve -d -r /home/opt/svn/
  • 添加账号:vim /home/opt/svn/conf/authz
  • 设置账号密码:vim /home/opt/svn/conf/passwd

改完以后立即生效,不需要重启服务

权限设置

权限设置如下,根目录只有admin角色可以访问,/MG目录,admin和user都可以访问

* = 是一个特殊的配置,表示除了上面配置的人,其他人都没有权限,这行配置需要放在每个路径配置的最后。

image.png

几个配置文件介绍

  • authz 是权限配置文件,哪个目录有读写权限,设置什么分组,都是在这里配置
  • hooks-env.tmpl 是钩子环境变量配置文件的模版,我们暂时用不到,可以忽略
  • passwd 用来配置用户的帐号密码
  • svnserve.conf 是subversion的总配置,如果你需要登陆并且授权的用户才可以访问,则需要配置这个文件:
[general]
# 是否允许未登录的用户访问,none表示不允许
anon-access = none
# 登陆后的权限,可写
auth-access = write
# 密码配置文件名
password-db = passwd
# 权限配置文件名
authz-db = authz