设置SVN配置以拒绝匿名访问

时间:2015-10-04 17:02:43

标签: svn raspberry-pi tortoisesvn raspbian

我正在尝试在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'上的'p>'方法不允许'

     

其他错误:

     

URI不包含存储库的名称。

我可以错过什么?

1 个答案:

答案 0 :(得分:1)

无关(但现有)错误

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

    1. 检查客户端的Subversion auth-cache,如果需要,清理它。
    2. 使用已知的现有存储库
    3. 如果您希望每次都有授权对话,而不是每个客户一次,请阅读subversion config中的/media/usbhdd1/db