【问题标题】:Subversion Access Control using Mysql and Apache (mod-dav-svn, mod-auth-sql, apache, mysql)使用 Mysql 和 Apache 的 Subversion 访问控制 (mod-dav-svn, mod-auth-sql, apache, mysql)
【发布时间】:2009-12-12 00:15:44
【问题描述】:

我正在尝试在我的 Apache 服务器上配置一个站点以使用带有 mysql 身份验证的 mod_dav_svn。

我正在使用一个包含三个这样的表的数据库

auth_users
----------
uid    username  passwd
1      UserA     pass
2      UserB     pass

.

auth_groups
-----------
gid    group
1      repo_rw
2      repo_ro

users_groups
uid    gid
1      1
2      2

因此:-

UserA 是组 repo_rw 的成员 UserB 是组 repo_ro 的成员

然后我在我的 httpd.conf 文件中使用以下内容:-

<VirtualHost *:80>
  DocumentRoot /var/www
  ServerName repo.srv.domain.com
  ServerPath /var/www

  <Location /svn>
    DAV svn

    SVNPath /var/svn/repo

    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /dev/null
    AuthBasicAuthoritative Off

    AuthMySQL_Authoritative on
    AuthMySQL_Empty_Password off
    AuthMySQL_Encryption_Types Plaintext

    AuthMySQL_Password_Table "auth_users u"
    AuthMySQL_Username_Field "u.username"
    AuthMySQL_Password_Field "u.passwd"

    AuthMySQL_Group_Table "auth_groups g RIGHT JOIN users_groups ug ON (ug.gid=g.gid) RIGHT JOIN auth_users u ON (ug.uid=u.uid)"
    AuthMySQL_Group_Field "g.group"

    <Limit GET PROPFIND OPTIONS REPORT>
      Require group repo_rw
    </Limit>
  </Location>
</VirtualHost>

在此配置中,我能够授予用户对存储库 /var/svn/repo 的 rw 访问权限,并作为此存储库的有效用户进行身份验证。

我还可以添加多个 VirtualHost 条目,将各个位置的“repo”替换为新的存储库名称,并提供对各个存储库的受控 rw 访问。

我的问题是我无法添加对存储库的只读访问权限,也无法添加匿名只读访问权限。

我已经阅读了应该可以添加

<LimitExcept GET PROPFIND OPTIONS REPORT>
  Require group repo_ro
</Limit>

到该部分,这应该提供对存储库的只读访问权限,但是我无法完成这项工作。跟踪 mysql 日志显示只有 repo_rw 被查询。

如果有人可以提供任何建议,我将非常感激!

【问题讨论】:

    标签: mysql svn apache apache2 mod-dav-svn


    【解决方案1】:

    看来这种方法行不通。网上有很多资源表明它会这样做,但似乎没有一个适用于当前版本的 apache/mysql/modules。

    细粒度访问控制有两种选择:1) 仅验证文件,跳过 mysql 验证并保留标准 apache 验证方法,或 2) 使用钩子脚本定义用户拥有的访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多