你能在 Subversion 的基于路径的授权中使用通配符吗?

你能在 Subversion 的基于路径的授权中使用通配符吗?

Subversion 信息:Collabnet Subversion Edge 3.2.2 SVN 版本:1.8.0 Apache HTTP Server 2.4.4 使用 mod_authz_svn,无 ldap

我试图将 Subversion 项目的访问权限分配给团队中的所有开发人员,但只有特定的开发人员才有权访问某些目录。而不是像这样创建数十个条目:

@superdevs = trusteddev, projman
@devs = @specdevs, user1, user2, user3

[/]
* = rw

[MyProj:/]
~@devs = 

[MyProj:/trunk/AllDevs/SuperDevsOnly]
~@superdevs = 

[MyProj:/trunk/ManyOtherDirs/SuperDevsOnly]
~@superdevs =

# the list goes on and on...

是否可以配置基于路径的授权文件来定义文件模式,而不是为每个受限路径明确创建一个条目?我希望避免在授权文件中添加 200 多个条目,因为我知道更多条目会影响服务器上托管的所有 SVN 操作的性能。这似乎也需要大量工作来保护构建最终解决方案所必需的敏感代码。

TL;DR; 您可以在设置 Subversion 的基于路径的授权文件时定义常见的文件模式,而不是为需要限制的每个显式文件或目录定义规则吗?

还有一件事

我熟悉外部因素,但我们无法让它们与我们的持续集成系统协同工作,而且当权者暂时不想“浪费时间”来更新或替换它。

答案1

通配符问题已在 svn 中讨论了相当长一段时间,并且有一个开放的错误报告:

http://subversion.tigris.org/issues/show_bug.cgi?id=2662

最后一条评论(2013 年 6 月)包含以下声明:

我们得出结论,无论如何,该功能都值得实施。我们可以提醒用户,该功能在某些情况下可能会降低服务器性能,甚至可能被用于拒绝服务攻击(如上文对此问题的评论中所述)。

预提交钩子 svnperms.py 具有有限的通配符支持,仅适用于写入,不适用于读取: https://stackoverflow.com/questions/916758/set-up-svnperms-pre-commit-hook

答案2

Subversion 1.10 支持基于路径的授权中的通配符:https://subversion.apache.org/docs/release-notes/1.10.html#authzperf

相关内容