51
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

// 创建三个代码仓库 

svnadmin create project1
svnadmin create project2
svnadmin create project3

// 把两个权限配置文件复制到 仓库根路径下,统一管理所有代码仓库

cd /projcet1/conf
cp authz passwd /home/svnroot

// 打开配置文件

vim svnserve.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
vim passwd

// 用户名 = 密码

[users]
eg1 = 123456
eg2 = 123456
eg3 = 123456
eg4 = 123456
eg5 = 123456
eg6 = 123456
vim authz
[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

// 停止命令

killall svnserve

四 实际测试

  1. 各个组成员只能访问自己的项目,无权限查看别人的项目
  2. 只有管理员才能查看所有项目工程


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!