我有一个运行良好的svn服务器运行在使用Apache进行访问的窗口上。 在原始设置中,每个用户都可以访问所有存储库,但是最近我需要授予用户只能访问一个存储库的权限。 我取消了在我的httpd.conf文件中的AuthzSVNAccessFile行的注释,并指出它到一个accessfile并设置访问文件,但是当我去到mydomain.com/svn时,我得到了一个403 Forbidden。 如果我build议这条线,那么事情再次工作。 我也确定我取消了LoadModule authz_svn_module的注释并validation它指向了正确的文件。
下面是我的httpd.conf和我的svnaccessfile的位置部分
httpd.conf (location section only) <Location /svn> DAV svn SVNParentPath C:\svn SVNListParentPath on AuthType Basic AuthName "Subversion repositories" AuthUserFile passwd Require valid-user AuthzSVNAccessFile svnaccessfile </Location>
(从长远来看,我想要一个更复杂的策略,但是这只是testing这个文件)svnaccessfile
[svn:/] * = rw
我也尝试了下面的svnaccess文件。
[/] * = rw
每次更改之后,我也会重新启动服务,以确保它已被占用。
它看起来像我已经通过更改位置标记的开始解决了问题
不同之处在于拖尾/
从上面的答案中筛选出来的是<Location / svn />
您还需要:
[/]
部分在您的acl文件中具有适当的权限
这只适用于如果你想允许每个人访问。
我的ACL文件很简单:
[/] scott = rw
这会产生一个403错误,但是如果我更改了ACL文件,那么它就是:
[/] * = rw
…允许访问。
仍然在搞清楚为什么*允许访问,但是一个特定的用户导致403错误(我有这个用户在一个htpasswd文件中定义的AuthUserFile引用)