您的位置主页 > SVN配置

Subversion 基于 Apache 使用时用户权限的管理

<p>Subversion 项目和用户权限配置指南:</p><p><br/>一、Subversion 的两种使用方式:<br/>    1、Apache 站点方式;<br/>    2、本地命令行方式。<br/>    当然,我们也可以通过客户端来进行访问,但那也必须先建立上述<br/>两种访问接口。</p><p>二、Apache 方式的配置<br/>    第一种方式我们需要安装 Apache 服务器程序,同时需要安装两个模</p><p>块:<br/>    mod_dav_svn   以及   mod_authz_svn<br/>    他们可以在 Subversion 的站点上找到,请在附录中查找链接。<br/>    将所有需要的模块安装之后,我们必须编辑 Apache 的配置文档,让</p><p>其将我们要用的模块装载。一般来说,Apache 的配置文件是 httpd.conf</p><p>。位置一般在 Apache 安装目录下的 conf 子目录中。而模块我们一般放</p><p>在 modules 子目录中。我们在配置文件 httpd.conf 中加入:<br/>    LoadModule dav_svn_module modules/mod_dav_svn.so<br/>    LoadModule authz_svn_module modules/mod_authz_svn.so<br/>    这样,Apache 就可以访问 Subversion 的仓库了。</p><p>三、Apache 方式中项目的发布<br/>    首先还是要先建立 Subversion 的项目,例如:<br/>    svnadmin create /home/svn/projectA<br/>    之后,在 httpd.conf 文件中加入:<br/>    &lt;Location /projectA&gt;<br/>       DAV svn<br/>       SVNPath /home/svn/projectA<br/>    &lt;/Location&gt;<br/>    如果是想建立多个项目的话,可以使用另一种写法:<br/>    &lt;Location /svn&gt;<br/>       DAV svn<br/>       SVNParentPath /home/svn<br/>    &lt;/Location&gt;<br/>    这样,凡是在 /home/svn 目录下的子目录, Apache 都交给 Subversion </p><p>DAV 去处理。用户即可以通过浏览器或者URL访问 Subversion 管理的项</p><p>目了。</p><p>四、Apache 方式下的权限管理<br/>    首先,我们来创建一个用户 robert。<br/>    由于是第一次创建用户,我们必须同时创建一个用户口令文件:<br/>    htpasswd -c authfile robert<br/>    这时,会提示输入用户密码以及确认用户密码。htpasswd 程序会将</p><p>用户密码进行散列运算后保存在 authfile 中。创建第二个用户时,我们</p><p>就不必输入 -c 开关了。<br/>    htpasswd authfile harry</p><p>    如果想要删除某个用户,我们可以使用下列指令:<br/>    htpasswd -D authfile harry<br/>    这样,harry 就被从 authfile 中删除了。</p><p>    这时,Subversion 的权限管理问题就转化为了 Apache 的权限管理问</p><p>题了。我们将前述的目录配置做一下修改:<br/>    &lt;Location /projectA&gt;<br/>       DAV svn<br/>       SVNPath /home/svn/projectA<br/>       AuthType Basic<br/>       AuthName "Subversion projectA"<br/>       AuthUserFile /home/svn/projectA/authfile<br/>       Require valid-user<br/>    &lt;/Location&gt;<br/>    这样,对 projectA 访问就必须提供 authfile 中记录的用户和正确密码</p><p>才可以进行了。</p><p>五、Apache 方式下的分组管理<br/>    有时,我们希望能够将多个开发人员编为一组,使用组的方式来为</p><p>项目设定权限。比如 projectA 项目只有属于 groupA 的成员才可以存取</p><p>。下面我们来介绍其配置方法。<br/>    这里,我们就要用到 mod_authz_svn 提供的功能了。我们对 </p><p>httpd.conf 中的目录配置再做一次修改:<br/>    &lt;Location /projectA&gt;<br/>       DAV svn<br/>       SVNParentPath /home/svn/<br/>       AuthzSVNAccessFile /home/svn/authz.conf<br/>       AuthType Basic<br/>       AuthName "Subversion projectA"<br/>       AuthUserFile /home/svn/projectA/authfile<br/>       Require valid-user<br/>    &lt;/Location&gt;<br/>    大家可以注意到,这里使用了另一个配置文件:authz.conf<br/>    他的大致结构如下:<br/>    [groups]<br/>    everyone = robert, tommy, songjy, zhengyong, orcus, zhangq<br/>    groupA = robert, zhangq<br/>    groupB = orcus, tommy<br/>    [projectA:/]<br/>    @groupA = rw<br/>    @everyone = r<br/>    [projectB:/]<br/>    @everyone = r<br/>    @groupB = rw<br/>    Ok, 我想大家应该已经明白了基于组和项目的管理方法了。<img alt="" src="/uploads/allimg/080213/1917160.gif" border="0" smilieid="1" /></p><p>附录:</p>1、获取最新安装包:<br/>    <a rel="nofollow" href="http://summersoft.fay.ar.us/pub/subversion/latest/whitebox-el-3/bin/">http://summersoft.fay.ar.us/pub/subversion/latest/whitebox-el-3/bin/</a><img border="0" src="down_info.asp?id=47926" width="1" height="1">

<br>

<br>