使用 authz 拒绝对路径的读取访问

使用 authz 拒绝对路径的读取访问

我试图拒绝用户访问 SVN 存储库中的某个路径。

根据文档这是通过将用户名设置为空来实现的。

[calc:/branches/calc/bug-142/secret]
harry =

另外,虽然文档中没有提到,但我成立这条信息:

如果我没记错的话,如果您使用的是 SVN 1.5 或更高版本,那么您对存储库根目录的全局读取权限不能低于。

据称固定的在 1.7 中,我仍然决定首先为每个人提供读取访问权限,然后拒绝对一条路径的访问。

这是我的 SVN vhost 的配置:

<VirtualHost *:443>

  <Location />
    DAV svn
    SVNParentPath /var/repositories/

    AuthType Basic
    AuthName "Repositories"
    AuthUserFile /etc/apache2/passwd/rep
    Require user andre

    # Google: svn secure connection truncated
    SVNPathAuthz Off
  </Location>

  <Location /test/>
    AuthUserFile /etc/apache2/passwd/rep-test
    Require valid-user
    SVNPathAuthz On
    AuthzSVNAccessFile /etc/apache2/passwd/authz-test
  </Location>

</VirtualHost>

存储库内https://svn/test/有一个目录test2

这是我当前的authz-test文件,无法阻止用户andre访问目录test2及其内容:

[/]
* = rw

[/test2]
andre =
[/test2/]
andre =
[test/test2]
andre =
[/test/test2]
andre =
[test/test2/]
andre =
[/test/test2/]
andre =
[test:/test/test2]
andre =
[test/:/test2]
andre =
[test:/test2/]
andre =
[test/:/test2/]
andre =
[test:test2]
andre =
[test/:test2]
andre =
[test:test2/]
andre =
[test/:test2/]
andre =

当我注释掉 时* = rw,对存储库的访问立即被拒绝,因此至少文件没有被完全忽略。我使用的是 Subversion 1.7.8。

答案1

  1. 首先Locaton非常糟糕的想法!
  2. 其次Locaton没有任何 SVNParentPath|SVNPath - 位置损坏。如果使用 SVNParentPath 并创建test2 存储库 [test2:/]将是正确的路径

相关内容