SVN,根据 authz 签出文件夹

SVN,根据 authz 签出文件夹

我已经在 freebsd 上设置了 svnserve 服务,并试图找出控制身份验证的最佳方法。

我有根文件夹 A 和子文件夹 A1、A2、A3

A--
   |-AdminFolder
   |-Project1
   |-Project2

有 2 个角色组:g_admin 和 g_pm。我想知道如何配置 authz 以满足以下场景:

  1. 作为管理员,我可以签出所有具有读/写权限的文件夹。
  2. 作为项目经理,我只能签出 Projectn 文件夹,而看不到“AdminFolder”
  3. 我希望所有用户都使用相同的 SVN 路径 (SVN://host/A)

我尝试了以下 authz 配置:

[/]
g_admin = rw
* = r

[/A/AdminFolder]
g_admin = rw
* = r

[/A/Project1]
g_admin = rw
g_pm = rw

[/A/Project2]
g_admin = rw
g_pm = rw

但是 g_pm 将会看到 / 下的所有内容...

答案1

重新阅读相关部分SVN 书籍(版本略微过时,但可用)并修复一些(明显的)配置部分

由于您的要求中有“2 个角色组”,因此您添加(为了将来更加灵活)群组部分,例如

[groups]
admins = user1, user2
pms= user3, user4

并在稍后的规则中使用组的引用

复制具有相同权限的规则是无用的,因为 authz-rules 是从上述路径继承的。

结果,你会得到类似的结果(未经测试,只是写下来)

[groups]
admins = user1, user2
pms = user3, user4

[/]
@admins = rw
* = r

[/A/AdminFolder]
* =

[/A/Project1]
pms = rw

[/A/Project2]
pms = rw

相关内容