我设置了一个svn服务器http://www.oliverdavies.co.uk/blog/2011/10/install-and-configure-subversion-svn-server-ubuntu.我已经为它创建了一个密码,当使用web浏览器查看时,它确实需要密码,但当我使用"svn-checkout http://"时,我可以像没有密码一样提取存储库中的所有内容。有人知道这里发生了什么吗?
我的/etc/apache2/apache2.conf配置包含与上述文章中相同的内容,即
<Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "SVN Repositories"
AuthUserFile /etc/svn-auth
Require valid-user
</Location>
[!已解决]事实证明,可以通过将<location /svn>
配置从/etc/apache2/apache2.conf移动到/etc/apache2/mods available/dav_svn.conf来解决此问题。
我怀疑有两件事:
要么你一直在使用当前用户帐户通过svn命令行命令测试存储库,并缓存了你的凭据;或者Apache httpd配置的其他部分允许访问相同的目录,绕过示例中的svn身份验证。
要测试前者,您可以尝试这些说明,也可以简单地删除整个~/.subversion
目录。如果随后的svn co
命令失败,要求输入密码,那么问题就解决了。
要测试后者,请注释掉整个<Location /svn>
块,然后再次尝试通过svn co
访问它。如果仍然可以,那么httpd配置的其他部分将提供对该目录的访问。在这种情况下,您需要仔细检查您的配置(可以分布在多个文件中)是否有任何可能授予访问/home
和/或/home/svn
目录的权限。请记住,Apache可以配置为允许用户访问自己的主目录,这可能是问题所在。
您还可以从Apache HTTP允许访问的其他目录中检查到/home/svn
目录的符号链接。
希望有帮助!