基于SVN路径的认证问题

基于SVN路径的认证问题,svn,Svn,我使用authz文件来限制对subversion服务器(svnserve)的访问。我希望授予用户对存储库中特定项目的读写访问权,但不授予用户对同一存储库中其他项目的访问权。我的authz文件如下所示: [groups] trusted = userA,userB,userC [/] @trusted = rw * = [repo1:/project1] userD = rw 但是,使用此authz文件,userD只能读取/project1,不能写入/project1 如果我添加以下内容:

我使用authz文件来限制对subversion服务器(svnserve)的访问。我希望授予用户对存储库中特定项目的读写访问权,但不授予用户对同一存储库中其他项目的访问权。我的authz文件如下所示:

[groups]
trusted = userA,userB,userC

[/]
@trusted = rw
* =

[repo1:/project1]
userD = rw
但是,使用此authz文件,userD只能读取/project1,不能写入/project1

如果我添加以下内容:

[repo1:/]
userD = r
然后userD可以读写/project1

这对我来说毫无意义。根据“最具体的路径总是首先匹配”,因此不需要这样做。此外,我无法理解设置读取权限实际上是允许该用户写入项目的


有人能帮忙吗?

这似乎是1.5以下版本中提到的类似或相同的错误。我强烈建议将您的存储库和SVN版本升级到1.6。这可能是一种痛苦,因为你必须卸载和加载整个回购协议。关于迁移存储库,有一个很好的指南。如果你的回购规模很小,那么这个过程不会太长(我在公司环境中做过)

另一种选择是使用apache作为SVN服务器主机

编辑:

在浏览SVN变更日志之后,我在以下内容中发现了这一点:

修复:authz需要对的读取权限 写入的根目录(第2486期)


这听起来像是你的问题。因此,应该在1.4.3版之后进行修复。

我很困惑,我觉得它很好。您使用的是什么版本的SVN,客户端和服务器?另外,您如何访问repo(eclipse、命令行等)?刚刚用mod_dav_svn 1.6.13测试了这一点,它工作正常,但在svnserve@John:svn服务器是1.3.1。从命令行访问repo,但现在无法检查客户端版本(不同的机器)。我今天晚些时候再发。@vinnyjames:有趣,这似乎指向一个svn服务bug@Grodriguez您是否安装了apache,可以使用mod_dav_svn测试配置?我同意,如果@vinnyjames有同样的问题,那么它可能是一个svnserve bug。谢谢John。我不确定它是否真的是同一个bug,因为我将anon-access设置为none,这似乎修复了这里提到的所有问题。我很乐意升级存储库,但我首先想知道这是否真的在以后的版本中得到了修复。。。