Subversion的权限控制

本文主要介绍Subversion怎么来做权限控制,在网上搜索关于Subversion的权限控制几乎都是讲述使用http方式的做法,很少介绍独立svnserve服务如何控制。

独立运行的Subversion权限设置很简单,首先打开snvserve.conf,去掉下面一行的注释

authz-db = authz

然后打开同一目录下的authz这个文件,这个文件便是整个权限控制的核心,先来看一个例子:

[groups]
dev-group = liudong,xfliang
design-group = newidea

[/]
@dev-group = rw
@design-group = r
* =

[/doc]
@design-group = rw

[/webapp]
@design-group = rw

接下来我给大家解释一下这个文件,相信就可以明白Subversion如何来做权限控制的了。

首先我定义了两个组,一个开发组(dev-group),一个设计组(design-group),接下来我让dev-group对整个目录有读写 的权限,而design-group只有读权限。但是接下来的两个子目录design-group就有读写权限,也就是说设计组可以读取整个项目,但只能 修改doc以及webapp这两个子目录。

*= 这行表示其他人不能读写。当然也可以直接指定某个用户,例如我想让liudong这个用户可以读写webapp目录,那设置如下:

[/webapp]
@design-group = rw
liudong = rw

另外有一点注意的是,修改这个文件不需要重新启动svn服务,这点太棒了。

下面是详细的说明Subversion自带的authz样例中的注释

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to a
### single user, to a group of users defined in a special [groups]
### section, or to anyone using the ‘*’ wildcard. Each definition can
### grant read (‘r’) access, read-write (‘rw’) access, or no access
### (”).