我正在寻找一个SVN设置,允许通过存储库的权限,而不使用SSH。 目前我们有一个SVN服务器,有几个回购站点,通过SSH + SVN协议访问。 我为每个存储库创build了一个UNIX组,并添加需要访问该组的用户。 本质上,我正在使用UNIX文件权限进行访问控制。 然而,我们遇到了一个问题,当我们转移到Windows 8和思科任意连接客户端的VPN访问,我们无法打开SSH隧道,无论出于何种原因,我不知道,networking和VPN不是我的专业领域。 无论如何,我被要求研究一下我们的SVN服务器的备选设置。
据我所知,其他可用的协议是SVN,HTTP和HTTPS。 有一次我们使用的是basic_auth的HTTP,但是任何有密码的人都可以读/写所有的回购。 我们想locking对存储库的访问权限。 无论如何用SVN或HTTP协议来做到这一点。 为了pipe理的目的,我们也希望尽可能多地使用它,这意味着我不想为每个回购维护一个虚拟主机和密码文件。 任何意见或build议表示赞赏。 我们已经转移到Git的新项目,但仍然有一些在SVN开发人员不想移动。
仅供参考,服务器是Linux,CentOS 6.4更适合Linux解决scheme。
好吧所以我尝试设置基于path的身份validation,但我遇到了一些问题,所以我希望有人可以帮助。
这是我的/etc/httpd/conf.d/中的svn.conf文件
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <VirtualHost *:80> ServerName svn.test.net ServerAdmin admin.test.net ServerSignature Off <Location /svn> DAV svn SVNPath /home/svn/repos #SVNListParentPath on AuthType Basic AuthName "Test SVN Server" AuthUserFile /home/svn/svn-passwd AuthzSVNAccessFile /home/svn/svn-access Require valid-user </Location> ErrorLog /var/log/httpd/svn_error.log CustomLog /var/log/httpd/svn_access.log combined </VirtualHost>
身份validation似乎工作正常,但无论我input它总是似乎总是尝试从/ home / svn / repos /格式
[Sun Jan 19 06:19:30 2014] [error] [client 192.168.17.117] (20014)Internal error: Can't open file '/home/svn/repos/format': No such file or directory [Sun Jan 19 06:19:30 2014] [error] [client 192.168.17.117] Could not fetch resource information. [500, #0] [Sun Jan 19 06:19:30 2014] [error] [client 192.168.17.117] Could not open the requested SVN filesystem [500, #2] [Sun Jan 19 06:19:30 2014] [error] [client 192.168.17.117] Could not open the requested SVN filesystem [500, #2]
如果inputhttp://svn.test.net.svn.repo1或http://svn.test.net.svn.repo2我会在错误日志中看到相同的消息。
所有的回购都存储在/ home / svn / repos。 Apache通过rwx权限recursion地拥有整个/ home / svn目录的所有权。 有什么我失踪或configuration错误?
在我的svn访问文件中,我有这样的东西
[groups] testgroup = testuser [/] * = r [/repo1] @testgroup1 = rw
最灵活的方法是使用mod_dav_svn和basic auth移回到Apache,并使用AuthzSVNAccessFile来强制访问控制 – 这允许根据repo和回购内的逻辑path为用户分配权限,读取和读取/写入。
在这里看到更多的信息。