限制某个组的成员访问 SVN 仓库

限制某个组的成员访问 SVN 仓库

我有几十个 SVN 存储库必须可供所有用户访问,并且有一个存储库需要限制为仅一个组。我尝试像这样设置我的 .svnaccess 文件:

[groups]
special = alice,bob

[/]
* = rw

[RestrictedRepo:/]
* = 
@special = rw

但是,这会导致 alice 和 bob 也无法访问 RestrictedRepo。如果我使用~@special =而不是* =,那么最终所有用户都可以访问。将 移到* =最后一行不会改变任何内容。

有什么方法可以做到这一点,而无需将 root 权限设置为无,并向我的许多其他存储库上的所有非组成员提供明确的访问权限?

我正在使用 svn 1.5.1 的旧服务器上运行它。

答案1

我在我的服务器上测试了相同的配置,并且成功了。编辑配置后,您是否重新启动了 svnserve 服务(假设您使用的是 Linux 系统)?

由此关于颠覆,它说:

另一个重要事实是,组权限不会被单个用户权限覆盖。相反,所有匹配权限的组合都会被授予。[...] 组成员的权限只能扩展到组已有的权限之外。将组内用户限制为其组的权限以下是不可能的。

对我来说您的配置是正确的,alice 和 bob 应该可以访问 RestrictedRepo。

答案2

我的问题是 apache 配置包含以下几行:

<LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
</LimitExcept>

这允许未经身份验证的服务器访问所有读取操作。看来我需要要求所有读取都登录(通过删除 Require 周围的 LimitExcept 说明符)或实现类似以下描述的内容http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html#svn.serverconfig.httpd.authz.perdir获取混合认证和匿名访问。

相关内容