使用 AuthzSVNAccessFile 时出现 403 禁止

使用 AuthzSVNAccessFile 时出现 403 禁止

我有一个运行良好的 svn 服务器,它在 Windows 上运行,使用 Apache 进行访问。在原始设置中,每个用户都可以访问所有存储库,但我最近需要授予用户仅访问一个存储库的能力。我取消了 httpd.conf 文件中 AuthzSVNAccessFile 行的注释,并将其指向一个访问文件并设置了访问文件,但当我访问 mydomain.com/svn 时,我得到了 403 Forbidden。如果我重新注释掉这行,一切又恢复正常了。我还确保取消了 LoadModule authz_svn_module 的注释,并验证它指向了正确的文件。

下面是我的 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>

(从长远来看,我想要一个更复杂的策略,但这样做只是为了测试文件)svnaccessfile

[svn:/]
* = rw

我也尝试了以下针对 svnaccessfile 的操作。

[/]
* = rw

我还会在每个更改之后重新启动服务,以确保更改被采用。

答案1

看来我已经通过将位置标记的开头更改为解决了该问题

区别在于后面的 /

答案2

从上面的答案中过滤掉的是 <Location /svn/>

您还需要:

[/]

在您的 acl 文件中具有适当权限的部分

答案3

这仅当您想允许所有人访问时才有效。

我的 ACL 文件很简单:

[/]
scott = rw

这会产生 403 错误,但如果我更改 ACL 文件,则会出现以下情况:

[/]
* = rw

...允许访问。

仍在努力弄清楚为什么 * 允许访问但特定用户导致 403 错误(我已在 AuthUserFile 引用的 htpasswd 文件中定义了该用户)

相关内容