CentOS7安装SVN服务器及多项目权限配置
CentOS7安装SVN服务器及多项目权限配置
安装简单,就一个命令(可先检查是否之前有安装过的要清掉)
yum -y install subversion
安装完就是创建项目和一系列的权限配置
1、创建个文件夹当做svn仓库
mkdir -p /usr/jileniao.net/svn/repo
cd /usr/jileniao.net/svn/repo
创建工程
svnadmin create Project_A
svnadmin create Project_B
svnadmin create Project_C
创建完成之后,在每个工程下面都会生成下面的文件
passwd authz svnserve.conf
先说一下几个文件的用处
passwd文件是记录用户和对应密码
authz文件是配置用户或用户组对应的各文件夹权限的
svnserve.conf文件是针对本工程用到的passwd、authz的配置文件
下面是具体做法
从任何一个工程中复制passwd和authz文件到svnrepo根目录,
复制后,具体每个工程下的passwd和authz文件就可以放心删除了
注意是删除passwd和authz文件,svnserve.conf文件一定要保留。
然后编辑每个工程的svnserve.conf文件,这个文件中有大篇幅的注释说明文字
主要有以下修改:
anon-access = none // 禁止匿名访问
auth-access = write
password-db = /usr/jileniao.net/svn/repo/passwd //统一使用密码文件
authz-db = /usr/jileniao.net/svn/repo/authz
realm = projectA // 权限授权域,每个工程不能写一样的,建议写工程名
经过上面每个工程对svnserve.conf文件的修改,保证了所有项目都使用一个用户文件和权限管理文件
这样,所有用户密码都统一定义在在svnrepo根目录的passwd文件中
svnrepo根目录的authz
# 对用户分组 [groups] admin = jileniao.net_admin guest = jileniao.net_user1,jileniao.net_user2 dever = jileniao.net_user3,jileniao.net_user4 [/] //管理者拥有所有读写权限 * = @admin = rw # 对项目A的权限设置 [Project_A:/] # 用户组前面要加@,用户则直接用户名即可 @admin = rw jileniao.net_user1 = r jileniao.net_user2 = rw [Project_B:/] @guest = rw
马上成功了,确保外部能正常访问,需要增加开放3690端口。
如果使用阿里云的话,记得在web端控制台中也要把端口加入安全规则中。
最后,重新启动svn服务生效
svnserve -d -r /usr/jileniao.net/svn/repo