基于路径的授权问题

 收藏

我们有一个具有许多存储库和通过AD身份验证的用户的Subversion服务器,该服务器在过去几年运行良好。现在,我们必须限制对存储库的访问,而我有以下无法解决的问题。 有些用户只能访问几个存储库中的特定子文件夹。因此,我将所有用户的访问权限都限制为“无访问权限”,并为相应的子文件夹授予了用户访问权限。现在,我们面临的问题是,这样的存储库不可见,并且只有在使用完整路径的情况下才可以访问这些存储库:

[/]
# Restrict access for all users
* = 

[repos1:/subdir1]
@user1 = rw

[repos1:/subdir2]
@user2 = rw

对于user1和user2,未在网页(mysvnserver / svn)中列出repos1。 TortoiseSVN无法访问这些用户的存储库。仅当使用完整路径(mysvnserver / svn / repos1)时,user1和user2才能访问subdir1 / subdir2。这意味着,用户知道存在哪些存储库以及可以访问的存储库的哪些部分。

我想要的是user_group1可以看到存储库,并且仅具有对subdir1的完全访问权限,而user_group2仅具有对subdir2的完全访问权限。

允许所有用户以只读方式访问根目录     [/]     * = r 导致user1和user2具有对所有存储库的读取访问权限,这不是我们想要的。其他用户将能够在存储库的顶层创建新文件夹,因此必须以这种方式完成-限制所有用户的访问并授予用户对相应存储库子目录的访问权限。

那么我该如何实现呢?

回复
  • eearum 回复

    [/]
    * = 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:/]
    * =
    

    即-仅允许对已使用的仓库(来自/)进行读取访问,并在需要时添加写入权限。 “继承”并不意味着“没有修改”或“没有其他限制”,请尝试