Subversion权限文件AuthzSVNAccessFile示例

来源:互联网 发布:网络信息安全培训总结 编辑:程序博客网 时间:2024/05/22 02:26
在使用Subversion时,认证文件AuthzSVNAccessFile能控制每一个目录的权限,但讲解的文档较少,中文文档更少。下面通过实例讲解使用方法。
环境Windows 2003 Server,局域网,域:domain.com.cn
Apache 2.0.52
Subversion 1.1.0
TortoiseSVN 1.1.0
LanguagePack_1.1.0_zh_CN
 

 

例子:
Repository存放在D:/repository下,有两个repository: test and xtest
每个repostory 的结构相同:
       根:01.txt
              02.txt
       folder 1-: 11.txt
       12.txt
folder 2-: 21.txt
   22.txt
对目录1和2作不同的读写权限控制
Basic Authentication
修改文件:
Httpd.conf:
#Basic authentication
<Location /repository>
              DAV svn
              SVNParentPath d:/repository
              AuthzSVNAccessFile d:/repository/accessfile                
              Require valid-user
              AuthType Basic
              AuthName "身份验证"
              AuthUserFile d:/repository/passwd                 
</Location>

用Apache的htpasswd生成用户名和密码,
Htpasswd –c passwd username
第二次不用 –c。
生成的用户名和密码在passwd中:
0:$apr1$Vu5.....$XZ/csz/2YKoPNKpb88O5p0
1:$apr1$vu5.....$I1VwMJ7JtRmpmJjVUlT4h1
2:$apr1$Dv5.....$vf2MTg/p0mY.WcFhx7wET1
3:$apr1$Tv5.....$gfk4AiP49h0JjKN8BuJdB.
 
AuthzSVNAccessFile控制每个目录的读写权限
[test:/]
1 = r
2 = r
3 = r
[test:/1]
1 = rw
[test:/2]
2 = rw
 
在客户端,用http://server/repository/test可以访问。也可以直接进入子目录访问:http://server/repository/test/1,http://server/repository/test/2。系统会要求进行认证。例如用户1对目录1有读写权限,可以commit修改,但对目录2所作的修改就不能commit。
 
SSPI认证。
按上一种方式,用户更换一次密码,就必须修改一次密码文件。用SSPI认证则可以没有这个问题。
Httpd.conf文件:
#SSPI authentication
<Location /repository>
              DAV svn
              SVNParentPath d:/repository
              AuthzSVNAccessFile d:/repository/accessfilesspi               
              Require valid-user
              AuthType SSPI
           AuthName "Subversion repositories"
               # SSPI settings
               SSPIAuth On
               SSPIAuthoritative On
               # point to domaincontroller
               SSPIDomain domain.com.cn
              SSPIOfferBasic On
</Location>
控制文件AuthzSVNAccessFile要作相应的修改:
[test:/]
domain/user1 = r
domain/administrator = r
[test:/1]
domain/user1 = rw
[test:/2]
domain/user1 =
domain/administrator = rw
在tortoiseSVN使用时,会提示认证,填写用户名和密码即可。
原创粉丝点击