![SVN 和 WebSVN 对 Linux 上多个存储库具有不同的用户访问限制](https://linux22.com/image/525791/SVN%20%E5%92%8C%20WebSVN%20%E5%AF%B9%20Linux%20%E4%B8%8A%E5%A4%9A%E4%B8%AA%E5%AD%98%E5%82%A8%E5%BA%93%E5%85%B7%E6%9C%89%E4%B8%8D%E5%90%8C%E7%9A%84%E7%94%A8%E6%88%B7%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6.png)
首先,抱歉我的英语不好。我安装了 ubuntu 服务器 10.04.1,其中有 apache2、subversion、svn_dav 和 websvn。(当然还有其他服务,如 php5、mysql 5.1 等)。我为 svn 配置了多个存储库,每个存储库都有不同的组和用户,例如:
/var/myrepos/repo1 group: mygroup1
/var/myrepos/repo2 group: mygroup2
/var/myrepos/repo3 user: johndoe
通过 svn_dav 轻松访问,可以完美运行,即:http://我的服务器/svnrepo1仅 mygroup1 上的用户及其 linux 用户和 svn 密码才可访问。其他存储库及其用户和组也适用。但是当我尝试使用 websvn 时,会显示所有存储库,而无需担心 mygroup1 上的用户可以查看 repo2(我不想这样做)。您可以以 mygroup1、mygroup2 或 johndoe 上的任何用户身份登录,并登录所有存储库。
我会尝试找到解决方案并发布新闻,如果有人能帮助我,我将不胜感激!!!感谢所有人
我显示我的文件:/etc/apache2/mods-available/dav_svn.conf
<Location /svnrepo1>
DAV svn
SVNPath /var/myrepos/repo1
AuthType Basic
AuthName "Repositorio Subversion de MD"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
<Location /websvn/>
Options FollowSymLinks
order allow,deny
allow from all
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
答案1
您有一个 auth 文件来存储用户,但没有访问文件。尝试添加
AuthzSVNAccessFile /var/myrepos/conf/svnaccess.conf
其中 svnaccess 具有指定的组和用户权限。
答案2
我在使用 websvn 时也遇到了这个问题。以下是我解决的方法:
首先,您需要有一个包含用户权限的 svnaccess.conf 文件,并按照 @gbjbaanb 的建议进行设置。然后,您需要让 websvn 在其配置中引用该文件。
websvn/include/config.php
$config->useAuthenticationFile('/var/myrepos/conf/svnauth.conf'); // Global access file
答案3
AuthzSVNAccessFile 应该可以工作。您也可以使用 http 方法限制/apache。