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日


评论

该日志第一篇评论

发表评论

评论也有版权!