SVN 和 WebSVN 对 Linux 上多个存储库具有不同的用户访问限制

SVN 和 WebSVN 对 Linux 上多个存储库具有不同的用户访问限制

首先,抱歉我的英语不好。我安装了 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。

https://stackoverflow.com/questions/484499/how-do-i-restrict-apache-svn-access-to-specific-users-ldap-file-based-authentic

相关内容