我们有一个Subversion服务器,里面有很多通过AD认证的仓库和用户,在过去几年中运行良好。现在我们必须限制对存储库的访问,我有以下无法解决的问题。 有些用户应该只能访问几个存储库中的特定子文件夹。因此,我将所有用户的访问权限限制为所有存储库的"无访问权限",并向用户授予相应子文件夹的访问权限。现在我们遇到了一个问题,即此类存储库不可见,并且只有在使用完整路径的情况下才能访问此类存储库:
[/]
# Restrict access for all users
* =
[repos1:/subdir1]
@user1 = rw
[repos1:/subdir2]
@user2 = rw
对于用户 1 和用户 2,存储库 1 未在网页中列出 (mysvnserver/svn)。TortoiseSVN无法访问这些用户的存储库。用户 1 和用户 2 只有在使用完整路径 (mysvnserver/svn/repos1) 时才能访问 subdir1/subdir2。这意味着,用户知道存在哪些存储库以及可以访问其中的哪些部分。
我想要的是user_group1看到存储库并且只能完全访问 subdir1,user_group2只能完全访问 subdir2。
允许所有用户对根目录进行只读访问 [/] * = r 导致用户 1 和用户 2 对所有存储库具有读取访问权限,这不是我们想要的。其他用户将能够在存储库的顶层创建新文件夹,因此必须以这种方式完成 - 限制所有用户的访问权限并授予用户对相应存储库子目录的访问权限。
那么我该如何实现呢?
[/]
* = r
[repos1:/subdir1]
@user1 = rw
@user2 =
[repos1:/subdir2]
@user1 =
@user2 = rw
[repos1:/subdir3]
@user1 =
@user2 =
[repos1:/subdir4]
@user1 =
@user2 =
…
[repos1:/subdirN]
@user1 =
@user2 =
[repos2:/]
* =
...
[reposN:/]
* =
即 - 仅允许对已使用的存储库进行读取访问(从/),在需要时添加写入权限。而"继承"并不意味着"没有修改"或"没有额外的限制"——试试吧