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

Subversion项目和用户权限配置指南:

一、Subversion的两种使用方式:

1、Apache站点方式;

2、本地命令行方式。

当然,我们也可以通过客户端来进行访问,但那也必须先建立上述

两种访问接口。

二、Apache方式的配置

第一种方式我们需要安装Apache服务器程序,同时需要安装两个模

块:

mod_dav_svn以及mod_authz_svn

他们可以在Subversion的站点上找到,请在附录中查找链接。

将所有需要的模块安装之后,我们必须编辑Apache的配置文档,让

其将我们要用的模块装载。一般来说,Apache的配置文件是httpd.conf

。位置一般在Apache安装目录下的conf子目录中。而模块我们一般放

在modules子目录中。我们在配置文件httpd.conf中加入:

LoadModuledav_svn_modulemodules/mod_dav_svn.so

LoadModuleauthz_svn_modulemodules/mod_authz_svn.so

这样,Apache就可以访问Subversion的仓库了。

三、Apache方式中项目的发布

首先还是要先建立Subversion的项目,例如:

svnadmincreate/home/svn/projectA

之后,在httpd.conf文件中加入:

<Location/projectA>

DAVsvn

SVNPath/home/svn/projectA

</Location>

如果是想建立多个项目的话,可以使用另一种写法:

<Location/svn>

DAVsvn

SVNParentPath/home/svn

</Location>

这样,凡是在/home/svn目录下的子目录,Apache都交给Subversion

DAV去处理。用户即可以通过浏览器或者URL访问Subversion管理的项

目了。

四、Apache方式下的权限管理

首先,我们来创建一个用户robert。

由于是第一次创建用户,我们必须同时创建一个用户口令文件:

htpasswd-cauthfilerobert

这时,会提示输入用户密码以及确认用户密码。htpasswd程序会将

用户密码进行散列运算后保存在authfile中。创建第二个用户时,我们

就不必输入-c开关了。

htpasswdauthfileharry

如果想要删除某个用户,我们可以使用下列指令:

htpasswd-Dauthfileharry

这样,harry就被从authfile中删除了。

这时,Subversion的权限管理问题就转化为了Apache的权限管理问

题了。我们将前述的目录配置做一下修改:

<Location/projectA>

DAVsvn

SVNPath/home/svn/projectA

AuthTypeBasic

AuthName"SubversionprojectA"

AuthUserFile/home/svn/projectA/authfile

Requirevalid-user

</Location>

这样,对projectA访问就必须提供authfile中记录的用户和正确密码

才可以进行了。

五、Apache方式下的分组管理

有时,我们希望能够将多个开发人员编为一组,使用组的方式来为

项目设定权限。比如projectA项目只有属于groupA的成员才可以存取

。下面我们来介绍其配置方法。

这里,我们就要用到mod_authz_svn提供的功能了。我们对

httpd.conf中的目录配置再做一次修改:

<Location/projectA>

DAVsvn

SVNParentPath/home/svn/

AuthzSVNAccessFile/home/svn/authz.conf

AuthTypeBasic

AuthName"SubversionprojectA"

AuthUserFile/home/svn/projectA/authfile

Requirevalid-user

</Location>

大家可以注意到,这里使用了另一个配置文件:authz.conf

他的大致结构如下:

[groups]

everyone=robert,tommy,songjy,zhengyong,orcus,zhangq

groupA=robert,zhangq

groupB=orcus,tommy

[projectA:/]

@groupA=rw

@everyone=r

[projectB:/]

@everyone=r

@groupB=rw

Ok,我想大家应该已经明白了基于组和项目的管理方法了。:)

附录:

1、获取最新安装包:

http://summersoft.fay.ar.us/pub/subversion/latest/whitebox-el-3/bin/

相关推荐