上一篇文章《 》我们介绍在Linux下安装并以独立进程方式运行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 ### ('').