SVN authz,基于路径的身份验证问题

时间:2009-06-11 08:39:13

标签: svn authentication authz

[groups]
developer = a,b,c
doc = r,x

[/doc]
@doc = rw
@developer = rw

[/]
@developer = rw
* =

如果现在该组doc的成员试图查看文档,则它不起作用。 我希望doc的成员能够查看sub-dir doc,禁止任何其他内容。 任何想法如何实现这一目标?

亲切的问候 罗尼

[更新]

客户端:svn,版本1.5.4(r33841) server:svn,版本1.4.6(r28521)

通过svn + ssh访问:/ user @ host / fullpath-to-repos

  • 1完美地工作了两年
  • 2可能是 - 看上面的版本号(我会立即联系我们的管理员)
  • 3不?只是ssh
  • 4 nope
  • 5 nope

[更新]

  • 使用客户端版本svn 1.4.6(r28521)也不起作用 - 相同的错误
  • 我使用普通的命令行访问。 svn co svn + ssh:// ....

[更新]

  • 服务器:Linux 2.6.16.60-0.39.3-default9 i686 athlon i386 GNU / Linux - suse 10?或者像我想的那样
  • 客户:Kubuntu 9.04
  • 通过OpenSSH SSH客户端连接
  • 服务器拒绝来自localhost的svn://连接 - 任何连接---都要在家中的时候用副本试一下

[更新4]  *这不是我自己的服务器,我不能用它做我想做的事。它是一个非常老的服务器,至少运行10年,有数百个用户。标准的东西应该工作。如果我错过了什么,请纠正我。

[更新5] 信不信由你。我使用了错误的路径,现在一切都运行良好, 我很抱歉浪费你的时间。我将把他的efford给予FoxyBOA赏金。

3 个答案:

答案 0 :(得分:3)

这样做的真正方法是:

[groups]
developer = a,b,c
doc = r,x

[doc:/]
* =  
@doc = rw
@developer = rw

[otherPath:/]
* =
@developer = rw
@doc = r

[/] 
* = rw

答案 1 :(得分:2)

哪些网址@doc成员尝试结帐?

<强> [增订]

请您提供一些额外的信息:服务器端和客户端的SVN版本。您的客户如何尝试连接到SVN服务器(例如,使用subclipse库从Eclipse开始,命令提示符等)。

  1. 如果您使用的是svn + ssh,则您的用户必须拥有对服务器的有效访问权限。您的用户是否有正确的shell(即bash,tcsh等)? / bin / false和其他伪造的shell不能与svn + ssh连接类型一起使用。

  2. 您可能遇到的其他问题 - 服务器端和客户端的不同SVN版本(例如服务器1.4,尝试使用1.5技术连接的客户端1.5)。

  3. 您是否正在使用SVN进行SASL身份验证?

  4. 您使用的是tunelling吗?

  5. 您使用的是ssh配置技巧described in svn docs吗?

  6. <强> [UPDATED2]

    1. 您是从命令提示符连接到SVN还是使用IDE?如果您使用的是IDE,请为其命名并提供有关哪个插件/库/等的信息。您正在使用连接到SVN服务器。
    2. <强> [UPDATED3]

      1. 您是否可以创建测试帐户并临时尝试访问没有ssh的SVN服务器?只需使用普通的svn://协议。如果它有效,则问题出在ssh中,如果失败 - svn。
      2. 您使用哪种工具进行ssh连接以及您正在使用哪种操作系统?
      3. <强> [UPDATE4]   - 你确定你的svn服务器已经启动了吗?如果您的svn在标准端口上工作,请尝试在本地服务器上直接连接svn端口:

        telnet localhost 3690
        
        • 如果可行则尝试从客户端连接(即telnet ip_server 3690)。

        • 如果服务器上的telnet工作正常,但客户端的telnet出现故障,请检查防火墙,路由器等。

        • 如果服务器上的telnet失败。尝试重新启动svn服务器并检查服务器日志。

        <强> [UPDATE5]

        在我看来你的svn服务器已经停止了。你能否检查svn服务是否在本地可见(telnet从localhost到3690)和远程。如果svn服务在两种情况下都能正常工作,你必须得到像

        这样的东西
          

        (成功(1 2(ANONYMOUS)(编辑管道)))

答案 2 :(得分:0)

“我使用svn + ssh ......奇怪的事情”

svn + ssh使用ssh进行连接,然后以隧道模式运行svnserve

  

在隧道上跑步时,   授权主要受控制   通过操作系统权限来   存储库的数据库文件;这是很   就像哈利一样   通过直接访问存储库   文件:// URL。

svnserve documentation

换句话说,它会忽略您设置的配置。