(当一个验证对话框弹出时,告诉用户这个验证是用来做什么的) AuthUserFile E:\svn \htpasswd
(指定E:\svn \htpasswd用为密码文件用来验证用户的用户名及密码)
AuthzSVNAccessFile E:\svn \authz
SVN+Apache+TortoiseSvn配置全过程
(指定E:\svn \authz来限定各个用户或组在版本库中目录的访问权限)
Require valid-user
(限定用户只有输入正确的用户名及密码后才能访问这个路径(此项表示,无论是IE还是Tortoise,只有通过密码验证才能访问)。)
下面表示允许匿名访问,对于读操作,不需要用户验证。 #<LimitExcept GET PROPFIND OPTIONS REPORT> #Require valid-user
#</LimitExcept>
具体代码:
<Location /mysvn>
(通过访问) DAV svn
SVNListParentPath on
SVN+Apache+TortoiseSvn配置全过程
SVNParentPath E:\svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile E:\svn\passwd
AuthzSVNAccessFile E:\svn\accessfile.
#<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user
#</LimitExcept>
</Location>
然后在Apache里添加用户,这些用户通过Apache里面的httpd.conf文件,上面的代码,把用户和svn联系。 在Apache的bin目录加到环境变量Path,以后直接可以调用Apache bin里面的htpasswd命令,这个exe命令只能在dos下调用,把bin路径加到Pah里面,在dos下用Apache bin 的htpasswd命令就不用一层层进入C:\Program Files\Apache Software
Foundation\Apache2.2\bin,而是直接在C:\下打htpasswd就可以了。
用Apache的htpasswd指令生成用户名和密码:
SVN+Apache+TortoiseSvn配置全过程
htpasswd -cm e:/svn/passwd.txt lhb
htpasswd -m e:/svn/passwd.txt lsz
htpasswd的参数-c是创建文件的意思,故只在首次使用,仅使用-m参数时也可用来修改密码。
在 e:\下建立一个accessfile名字的文件。如果
AuthzSVNAccessFile "e:/svn/accessfile.txt"(或者
"e:/svn/accessfile ")是没用.txt的 这个文件也不需要.txt .
配置文件库访问政策文件(假设repository文件库下已经建立了projectA和projectB),如:
[repository:/]
username1 = rw
[repository:/projectA]
username2 = r
[repository:/projectA/trunk]
username1 =
SVN+Apache+TortoiseSvn配置全过程
username2 = rw
[repository:/projectB]
* = r
[repository:/projectB/trunk]
username1 =
小节名称中冒号前面的文件库名称不要轻易省略,省略就代表是针对所有文件库,这样是很为危险的,*号代表所有用户,等于号后面为空表示没有权限,mod_authz_svn模块首先会找到匹配自己的目录,然后是父目录,父目录的父目录,依次下去,并会以最近找到的描述为准。另外,你还可以定义一组用户,然后按组进行权限配置,比如:
[groups]
department_1 = username1, username2
department_2 = username3, username4, username5
[repository:/projectA]
@department_1 = r
SVN+Apache+TortoiseSvn配置全过程
@department_2 = rw
我的配置:(分组配置)
[groups]
admin = zyj, lhb, lsz, rj
guest = guest
[NewMapGis:/] (NewMapGis这个版本库 下所有文件夹都能被admin组里的用户读和写,guest组里的用户只能读)
@admin = rw
@guest = r
[NewMapGis:/Document] (NewMapGis这个版本库下的Document文件夹可以被guest读和写)
SVN+Apache+TortoiseSvn配置全过程
@guest = rw