Linux (CentOS 7 )下搭建局域网SVN服务器+SVN权限配置

准备

公司内部须要配置局域网SVN,须要在在内部虚拟机服务器搭建,搭建过程作个记录,供参考。
注:若是条件容许,尽可能在windows下搭建svn服务器,很省事,尤为是权限配置很是方便又易懂,效果相同mysql

首先须要搭建SVN服务器

若是确认没有svn能够直接进入安装步骤sql

安装准备

保证当前系统没有安装svn
使用命令,尝试查看是否已经安装了svnwindows

rpm -qa subversion

或者,咱们直接在所有文件中查找svn文件夹就能够,使用以下命令查找,任意文件目录下输入服务器

find / -name svn

若是发现svn文件夹首先要确认是否为svn的文件夹,有些软件内置svn文件夹及相关服务,注意不要看错了。
如:
clipboard.pngsvn

下面几行的svn是在redmine下的svn因此它是不须要进行处理的,若存在svn,则进行删除或者卸载。
若是是压缩包安装只许删除全部相关文件spa

rm -rf [目标文件夹]

若是使用的是yum安装则:code

yum remove subversion

出现确认输入y 便可,直至卸载完成
使用命令ip

rpm -qa subversion

没有出现svn版本说明卸载成功内存

SVN安装

分别执行以下命令(安装必须在联网状况下完成)安装svn和相关依赖包开发

yum install subversion
yum install mod_dav_svn
yum install httpd httpd-devel subversion mod_dav_svn 
 mod_auth_mysql

安装完成后进行确认是否安装成功,根目录下输入

cd /etc/httpd/modules

执行

ls | grep svn

出现以下内容便可
mod_authz_svn.so
mod_dav_svn.so

到此为止svn服务器基本安装完成

SVN配置

建立代码库

新建一个目录用于版本库,存放版本库信息(这一步能够省略)

mkdir -p /usr/local/svn/repo

建立一个版本库

svnadmin create /usr/local/svn/repo

上面的位置就是版本库的位置,文件内存放该版本库的相关信息

用户配置以及配置文件的修改

进入配置文件目录

cd /usr/local/svn/repo/conf

修改svnserve.conf 去掉下面几列的注释

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

分别解释一下上面四行的意思

  1. anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值为read
  2. auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write
  3. password-db 指定用户名口令文件名。除非指定绝对路径,不然文件位置为相对conf目录的相对路径。缺省值:passwd
  4. authz-db 指定权限配置文件名,经过该文件能够实现以路径为基础的访问控制。除非指定绝对路径,不然文件位置为相对conf目录的相对路径。缺省值:authz

修改passwd 文件,这个文件是存储全部帐号和密码的

打开文件添加帐户信息

[user]
admin = 123456
root = root

admin为登录的用户名,123456是密码,使用回车分割用户

修改authz文件 ,该文件是进行用户分组和权限配置的

在[/]下添加

[/]
admin = rw
root = rw
* = r

解释一下啊上面的配置
admin用户具备根目录下全部文件的rw(read,write)读写 权限,其余用户用*代替,其余用户只有读的权限

至此svn服务器的基本配置和用户配置已经完成
能够在svn客户端访问地址

svn://ip

注意咱们使用的是svn协议来完成svn库的访问

分组和文件夹权限的配置

实际开发中会使用不一样的分组来分类svn帐号,进而实现权限控制
对用户进行分组,authz文件中的[groups]下添加,多个组员之间用 “,” 隔开

[groups]
group1 = admin
group2 = root

上面就是把amdin分到group1组,root分到group2组
在[/]下添加

[/]
@group1= rw
@group2 = rw
* = r

能够批量对组的权限进行控制

文件夹权限配置

假设咱们在版本库根目录下有两个文件夹分别为 user 和 project文件夹
如今设置user文件夹只有group1组的人员能够进行读写,其余用户组只可读,project文件夹只有group2组能够读写,group1组只有读权限,而且其余用户不可见(注意最后一行)
咱们能够在authz文件中添加以下配置

[/user]
@group1 = rw
* = r

[/project]
@group2 = rw
@group1 = r
* =

注意:对文件夹权限进行配置的时候,仓库里有多少个文件夹, 就得为每个文件夹都分配权限,否则不起做用

完~

相关文章
相关标签/搜索