我在我的服务器上配置了两个存储库站点。第一个是在/home/svn/repoA上,第二个是在/home/svn/repoB上。
我已经使用以下信息在Apache上构建了一个虚拟主机:
<Location />
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Servidor SVN"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>现在这是网址,我可以通过http://svn.mydomain.com/repoA和http://svn.mydomain.com/repoB访问服务器,但我想将repoB设置为私有,只允许使用之前在dav_svn.passwd上使用htpasswd创建的用户和密码进行访问。
如果我去掉<LimitExcept GET PROPFIND OPTIONS REPORT>行,它是closer标记,它会询问用户和密码,但在两个存储库中。
有没有办法使一个存储库只对匿名用户可读,并对已登录用户具有读/写权限,而第二个存储库仅对已登录用户具有读/写权限?
发布于 2011-03-06 05:04:52
你用了什么资源才能走到这一步?我知道有一本免费的Subversion书(Version Control with Subversion)里面有答案:
Apache authn/authz:http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html#svn.serverconfig.httpd.authz
基于路径的身份验证:http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html
发布于 2011-03-07 09:12:30
我只有两个区块。对于匿名只读访问,RepoA应该在Apache location块中打开“the”,并且相应的Auth文件允许匿名访问。RepoB的Auth文件应该拒绝匿名访问。
即
Apache repoA会议
<Location /repoA>
DAV svn
SVNPath /home/svn/repoA
AuthType Basic
Satisfy Any
AuthName "Servidor SVN"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /path/to/authFileA
</Location>authFileA
[/]
* = r
[/repoA]
* = r
mark = rw
bill = rwApache repoB会议
<Location /repoB>
DAV svn
SVNPath /home/svn/repoB
AuthType Basic
AuthName "Servidor SVN"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /path/to/authFileB
</Location>authFileB
[/]
* =
[/repoB]
* =
mark = rw
bill = rwhttps://stackoverflow.com/questions/5198090
复制相似问题