Linux (CentOS 7 )下搭建局域网SVN服务器+SVN权限配置
首先需要搭建SVN服务器
如果确认没有svn可以直接进入安装步骤
安装准备
保证当前系统没有安装svn
使用命令,尝试查看是否已经安装了svn
rpm -qa subversion
或者,我们直接在全部文件中查找svn文件夹就可以,使用如下命令查找,任意文件目录下输入
find / -name svn
如果发现svn文件夹首先要确认是否为svn的文件夹,有些软件内置svn文件夹及相关服务,注意不要看错了。
如:
下面几行的svn是在redmine下的svn所以它是不需要进行处理的,若存在svn,则进行删除或者卸载。
如果是压缩包安装只许删除所有相关文件
rm -rf [目标文件夹]
如果使用的是yum安装则:
yum remove subversion
出现确认输入y 即可,直至卸载完成
使用命令
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
分别解释一下上面四行的意思
anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值为read
auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write
password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:passwd
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 * =
注意:对文件夹权限进行配置的时候,仓库里有多少个文件夹, 就得为每一个文件夹都分配权限,不然不起作用
参考:https://segmentfault.com/a/1190000013059249?utm_source=sf-related
网友留言(1 条)