CentOS SVN服务器如何管理多个项目
一需求
一般来说,公司有多个项目,在搭建好SVN服务器之后,就需要使用SVN来实现不在一个项目中的开发人员不能访问其它项目中的代码。
假设:
有3个项目:project1、project2、project3
开发人员有6个人:eg1、eg2、eg3、eg4、eg5、eg6
eg1、eg2,只能访问project1;
eg3、eg4,只能访问project2;
eg5、eg6,只能访问project3;
二实现
在仓库根路径下:假设是/home/svnroot
cd/home/svnroot
//创建三个代码仓库
svnadmincreateproject1
svnadmincreateproject2
svnadmincreateproject3
//把两个权限配置文件复制到仓库根路径下,统一管理所有代码仓库
cd/projcet1/conf
cpauthzpasswd/home/svnroot
//打开配置文件
vimsvnserve.conf
修改成如下:
anon-access=none#禁止匿名访问
auth-access=write
password-db=/home/svn/passwd#统一使用密码文件
authz-db=/home/svn/authz
realm=project1#权限域名,很重要,写你的项目名
分别修改project2的svnserve.conf,和上面一样,最后一行分别写
anon-access=none#禁止匿名访问
auth-access=write
password-db=/home/svn/passwd#统一使用密码文件
authz-db=/home/svn/authz
realm=project2#权限域名,很重要,写你的项目名
分别修改project3的svnserve.conf,和上面一样,最后一行分别写
anon-access=none#禁止匿名访问
auth-access=write
password-db=/home/svn/passwd#统一使用密码文件
authz-db=/home/svn/authz
realm=project3#权限域名,很重要,写你的项目名
修改两个权限管理文件:
cd/home/svnroot
vimpasswd
//用户名=密码
[users]
eg1=123456
eg2=123456
eg3=123456
eg4=123456
eg5=123456
eg6=123456
vimauthz
[groups]#分组
admin=eg1,eg2
guest=eg3,eg4
guset1=eg5,eg6[/]#管理者拥有所有读写权限
@admin=rw
*=[project1:/]#项目1的访问控制,guest1,2无法访问
@admin=rw
或
eg1=rw
eg2=rw[project2:/]
@guest=rw
或
eg3=rw
eg4=rw[project3:/]
@guest1=rw
或
eg5=rw
eg6=rw
三重启
svnserve-d-r/home/svnroot
//停止命令
killallsvnserve
四实际测试
各个组成员只能访问自己的项目,无权限查看别人的项目
只有管理员才能查看所有项目工程
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。