Subversion權限文件AuthzSVNAccessFile示例

在使用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

對目錄12作不同的讀寫權限控制

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>


Apachehtpasswd生成用戶名和密碼,

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/1http://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使用時,會提示認證,填寫用戶名和密碼即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章