SVN服务器的安装和权限管理

        源文件的版本控制是一个比较好的习惯,无论是些论文还是写代码。常见的版本控制有git和SVN。本文结合作者在CentOS6.5上配置SVN服务器的经历,详细描述了SVN服务器的安装和权限管理。

1.SVN服务器的安装

在CentOS的更新源中有SVN服务器需要的程序,所以最简单的实现方法为用yum安装。

 yum install subversion httpd mod_dav_svn                        //subversion为SVN主程序,httpd为web服务器,mod_dav_svn为利用web来管理SVN的模块。

2.创建SVN目录

这里可以在任意目录下(推荐在/var/www/svn/目录下,原因后面会叙述),利用命令svnadmin create repos(这里的repos为项目名,可根据实际情况修改)。

3.权限管理

SVN的访问分为两种方式:(1)用SVN客户端访问;(2)用web浏览器访问。

     3.1 用SVN客户端访问

1. 编辑repos(repos为项目名)下conf/passwd文件,这个文件定义了SVN的用户和密码。

    源文件如下所示

    [users]
    # harry = harryssecret
    # sally = sallyssecret
   user = password     // 添加用户如左边所示

   添加用户的格式为用户名 = 用户密码(注意空格)

2. 编辑conf/authz文件,这个文件定义的用户组及相应的权限

    源文件如下所示

    [groups]

    # harry_and_sally = harry,sally

    # harry_sally_and_joe =harry,sally,&joe

    admin = user        //添加用户组和成员如左边所示 

    [repos:/]         //repos文件夹下的所有文件

    @admin = rw            //admin组用户有读写权限

    *=                               //其他用户无读写权限

    groups下面定义了用户组以及用户组包含的用户。repository定义了根目录下文件夹的访问权限,@admin = rw 代表用户组admin有读写权限,* = r其他有读权限。

3. 编辑conf/svnserve.conf文件,指定authz和passwd文件的路径

    如下所示:

    [general]

    anon-access = none

    auth-access = write

    password-db = /var/www/svn/repos/conf/passwd

    authz-db = /var/www/svn/repos/conf/authz

 配置好后,配置防火墙,开放3690端口。

    vim /etc/sysconfig/iptables

添加如下代码

    -A INPUT -m state --state NEW -m tcp -p tcp--dport 3690 -j ACCEPT

然后重启防火墙,service iptables restart。

启动SVN服务器,svnserve –d–r /var/www/svn。

如果出现端口被占用的话,用killall svnserve命令,关闭已经开启的svnserve,重启svnserve。

这样用SVN客户端就可以访问了,本机访问的方法为svn co svn://127.0.0.1/repos。

但是作者调试了很久用CentOS本机能连上SVN服务器,用windows下的TortoiseSVN始终连不上。     

    3.2用web服务器访问

(这种方法用SVN客户端也能访问,把原来的SVN://+地址变为http://+地址就可以了)

安装好httpd和mod_dav_svn后就可以用web服务器管理SVN了。

首先创建svn项目,方法如(1)。不需要配置conf下的文件。但是 需要用chown -R apache.apache repos(项目文件夹)更改项目文件夹的权限

然后编辑/etc/httpd/conf.d/subversion.conf

    源代码如下:

    <Location /repos>      //将web路径中的repos映射为SVNParentPath

      DAV svn

      SVNParentPath /var/www/svn  //指定svn项目的根路径

 

       #Limit write permission to list of valid users.

         #  <LimitExcept GET PROPFIND OPTIONS REPORT>       //取消这句话的注释代表只有写操作的权限控制,读操作没有控制。

             # Require SSL connection for password protection.

             # SSLRequireSSL

 

            AuthType Basic

           AuthName "Authorization Realm"

           AuthUserFile /var/www/svn/passwd                 //指定svn用户文件,这个是用htpasswd创建,用户密码被加密的文件

           AuthzSVNAccessFile /var/www/svn/authz           //指定svn权限控制的文件,默认的没有这句,无法进行权限控制

           Require valid-user

        #  </LimitExcept>

    </Location>

 

上面提到的/var/www/svn/passwd文件的创建是通过hapasswd命令实现:

Htpasswd –cm /var/www/svn/passwd user(用户名)

/var/www/svn/authz 文件结构跟(3.1)中的auhz文件结构相同就不赘述了。

这个方法的好处在于可以用浏览器查看文件,需要启动httpd服务以及在防火墙中开放80端口就可以使用。

 

由于作者在配置SVN服务器的时候找到了很多资料,但是有些介绍的不是很具体,而有些文章用到的服务器版本太低了以至于没有太多参考价值,所以这里结合自己的经历和参考资料将CentOS6.5下配置SVN服务器的方法做以总结,如有疏漏还请大牛多多指教。

 

参考资料:

http://www.linuxidc.com/Linux/2013-01/78244.htm

 

http://www.linuxidc.com/Linux/2011-07/39577.htm

 

http://bluexp29.blog.163.com/blog/static/338581482013111111724404/

 

http://www.if-not-true-then-false.com/2010/svn-subversion-access-control-with-apache-and-mod-authz-svn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值