![Subversion 存储库访问规则](https://linux22.com/image/607418/Subversion%20%E5%AD%98%E5%82%A8%E5%BA%93%E8%AE%BF%E9%97%AE%E8%A7%84%E5%88%99.png)
我通过 CollabNet Subversion Edge 设置了多个存储库和用户。我正在尝试了解如何将我们的一些存储库的访问权限限制为少数用户,但遇到了一些问题。例如,我设置了以下规则:
[groups]
engineers = alexa, miked
dtil = user1, user2, user3
[/]
* = rw
[PermissionsTest:/]
~@engineers =
我想要做的是让其他存储库保持原样(让任何人都可以读取或写入,这就是我保留 [/] * = rw 的原因),但在这种情况下能够将 PermissionsTest 限制为仅一个用户组。但是,我仍然可以作为不属于工程师组的另一个用户签出并更新 PermissionsTest 中的代码。
是否可以使用一条规则来限制存储库访问?或者我是否必须明确授予用户和组对每个存储库的访问权限才能实现此目的?
答案1
如果您想要的级别没有明确匹配,则 Subversion 访问控制将从更高级别继承。 在您的例子中,该组dtil
被隐式授予rw
测试存储库,因为它已经rw
在父级中拥有。
如果您的模型中大多数存储库都rw
包含一些受限制的存储库,那么您必须明确注意deny
那些可能具有更高权限的用户和组:
[PermissionsTest:/]
~@engineers =
* =
在你的情况下已经足够干净了,但你可以想象,如果你有很多组和存储库需要照顾,情况会变得非常混乱;必须明确否认访问从来都不是一个好方法。我建议删除该 lop 级别* = rw
默认值,并将其重新添加为仅对您想要开放的存储库的策略默认值(最小权限原则)。这可能会使您的配置稍微大一些,但这是更安全的路线。
答案2
首先删除它
[/]
* = rw
并明确授予用户项目权限。