在使用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>
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使用時,會提示認證,填寫用戶名和密碼即可。 |
Subversion權限文件AuthzSVNAccessFile示例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.