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 四 实际测试
|