SVN--搭建多工程svn服务器

来源:互联网 发布:全能行证券交易软件 编辑:程序博客网 时间:2024/06/07 23:01




1、安装svn服务

   # yum install subversion
 
2、新建一个目录用于存储SVN所有文件
   # mkdir /home/svn
 
3、在上面创建的文件夹中为项目 project_1 创建一个版本仓库
   # svnadmin create /home/svn/project_1
   执行完这一步,/home/svn 中将存在project_1文件夹,这个项目的配置都在 /home/svn/project_1/conf 中
 
4、为项目配置权限
   (1)svnserve.conf 是主配置文件
        # vi /home/svn/project_1/conf/svnserve.conf
        anon-access=read          #匿名可读
        auth-access=write         #验证用户可读写
        password-db=passwd        #指向验证用户名密码的数据文件 passwd ,请看下文配置
        auth-db=authz             #指向验证用户的权限配置文件 authz ,请看下文配置
        注意:每一行前方不能有空格,否则会出现 Option expected 错误!
   (2)passwd 用户名密码配置文件 
        # vi /home/svn/project_1/conf/passwd
        [users]
        manager1=123456       #每一行都要是“用户名=密码”的格式
        manager2=123123 
        manager3=888888
   (3)authz 用户权限配置文件 
        # vi /home/svn/project_1/conf/authz
        [groups]
        managers=manager1,manager2         #定义群组 managers 包含 manager1 和 manager2 两个用户
        [/]
        @managers=rw                       #定义群组 managers 有读写权限
        manager3=r                         #定义 manager3 有读权限
        *=                                 #以上没有定义的用户都没有任何权限
 
5、启动服务器
        # svnserve -d -r /home/svn



















根据本文中的CentOS 6.4下的SVN服务器构建 一文,搭建好SVN服务器只能管理一个工程,如何做到不同的项目,多个成员的权限管理分配呢?

一 需求
  开发服务器搭建好SVN服务器,不可能只管理一个工程项目,如何做到不在一个项目中的开发人员不能访问其它项目中的代码,做好技术保密工作。
  代码仓库有三个仓库:project1,project2,project3
  假设人员有6个人:eg1,eg2,eg3,eg4,eg5,eg6
  eg1,eg2,只能访问project1;
  eg3,eg4,只能访问project2;
  eg5,eg6,只能访问project3;

二 实现
在你的仓库路径下:假如是/home/sv
cd /home/svn
//创建三个代码仓库
svnadmin create project1
svnadmin create project2
svnadmin create project3
//把两个权限配置文件复制到SVN
//根路径下,统一管理所有代码仓库
cd/projcet1/conf
cp authz passwd /home/svn
//打开配置文件
vi 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              //权限域名,很重要,写你的工程名

 

修改两个权限管理文件:
passwd
 //用户名 = 密码
[users]
eg1 = 123
eg2 = 123
eg3 = 123
eg4 = 123
eg5 = 123
eg6 = 123

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/svn

停止命令
killall svnserve

  实际测试:
  各个组成员只能访问自己的项目,无权限查看别人的项目
  只有管理员才能查看所有项目工程

原创粉丝点击