SVN和BugFree的结合第一步只解决了用户认证的问题,下面就是用户权限分配的问题了。SVN的权限设置非常灵活,即可以对单个Repository设置,也可以对同时对多个Repository相同的目录进行设置。既可以对目录进行设置,也可以对文件进行设置。还具有群组的概念。
在(一)的例子中,在httpd.conf文件行:SVNParentPath D:/svntest/parent 后加入“ AuthzSVNAccessFile D:/svntest/parent/accessfile ”
文件内容是:
[groups]
doc = tom, foo
[a1:/]
admin = r
guest = r
[a1:/1]
guest =
feihu = rw
[a1:/1/readme.txt]
guest = r
feihu = r
[a1:/2]
* =
admin = r
[a1:/2]
* = r
admin =
[test1:/]
* = r
[/doc]
@doc = rw
一行行来解释
[groups]
doc = tom, foo #定义了一个doc组
[a1:/]
admin = r #对Repository的根目录/,admin,guest都有read的权限,如子目录没有特殊规定,继承父目录
guest = r
[a1:/1]
guest = #取消guest对目录"1"的权限,admin还是有r权限,赋予feihu read&write的权限
feihu = rw
[a1:/1/readme.txt]
admin = #admin 对 1/readme.txt没有任何权限,但guest却有了读权限,但guest对目录"1"却是无权限的
guest = r
feihu = r
[a1:/2]
* = #所有人都没有权限了,但admin还是有r权限
admin = r
[a1:/2] # 这是目前SVN设置权限的一个问题,admin还是对目录"2"具有读权限,也就是说对权限目前是或的算法
* = r
admin =
[test1:/]
* = r #对仓库 test1,所有人都有读权限
[/doc]
@doc = rw #对所有仓库的 /doc 目录,doc组里的所有人都有r权限
目前来说,SVN的权限设置是非常灵活的,也非常强大,但只有文本设置,没有什么图形工具,也没有什么验证的手段。最好对每个项目的目录结构做好详细的设计和规划,但人员较多的时候,利用角色,组的概率来定义权限。不要象例子一样,设置过于复杂的权限。
全文完·非狐外传@2005年8月11日
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=503498