【问题标题】:Setting SVN configurations to deny anonymous access设置 SVN 配置以拒绝匿名访问
【发布时间】:2015-10-04 17:02:42
【问题描述】:

我正在尝试在 Raspberry Pi 中配置 svn 服务器,例如我可以在浏览器中列出存储库路径,但仅限于 pi 用户。不允许其他人访问,即使是只读的。

所以我将/etc/apache2/dav_svn.authz配置为

[/]
*=
pi=rw

[svn:/]
*=
pi=rw

还有/etc/apache2/mods-enabled/dav_svn.conf

<Location /svn>
  DAV svn
  SVNListParentPath on
  SVNParentPath /media/usbhdd1/db
  AuthType Basic
  AuthName "Repositories"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  Require valid-user
</Location>

出现了 2 个问题。一个在浏览器中,另一个在简单结帐中。

在浏览器中,问题是如果我使用http://.../svn/ 访问父文件夹,它会询问用户/密码,所以这没关系。但是当我从 http://.../svn/myrepo 直接访问存储库 myrepo 时,它不会要求输入用户/密码,因此存储库内容会暴露出来。

在结帐时,它不进行身份验证。在这种情况下,当我尝试使用 TortoiseSVN 结帐时,它会返回错误:

无法连接到 URL 上的存储库

'http://192.168.0.200:8888/svn/myrepo'

意外的 HTTP 状态 405

“/svn/myrepo”上的“方法不允许”

其他错误:

URI 不包含存储库的名称。

我可能错过了什么?

【问题讨论】:

    标签: svn raspberry-pi tortoisesvn raspbian


    【解决方案1】:

    不相关(但存在)的错误

    • dav_svn.authz 中的访问权限从根继承到后代:您必须重新定义更改的规则,但对于存储库 @987654321 @你克隆父母的权利[svn:/]绝对没用
    • [NAME:/] 在部分名称中定义(现有)存储库名称,而不是来自 Apache 的位置,因此 - 用于存储库 myrepo(物理上是目录 /media/usbhdd1/db[svn:/] 来自 dav_svn.authz 的部分完全没有意义

      1. 检查客户端的 Subversion 身份验证缓存,如果需要,请清理它。
      2. 使用已知的现有存储库
      3. 如果您希望每次都有授权对话,而不是每个客户端一次,请阅读 subversion 配置中的store-auth-creds

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-04
      • 2011-04-20
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多