首页 > 解决方案 > 如何使用 LDAP/Limit 和 AuthzSVNAccessFile 配置 Apache/Subersion 路径

问题描述

我有一个基于 apache 的颠覆服务器,它托管多个存储库,这些存储库使用 Location 节使用 Limit 和 LimitExcept 部分运行良好,如下所示:

<Location "/svn/IAM/">
  <Limit GET PROPFIND OPTIONS REPORT>
    Require ldap-group CN=LDAP_ReadOnly
  </Limit>
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require ldap-group CN=LDAP_ReadWrite
  </LimitExcept>
</Location>

基于此,LDAP_ReadOnly 中的帐户能够读取整个 repo,而 LDAP_ReadWrite 中的帐户能够读取和写入整个 repo。

随之而来的是需要授予组 LDAP_LimitedRead 对“/svn/IAM/Trunk/Project1 的读取权限,并且无权访问 /svn/IAM/Trunk/Project1/one.properties 并且无权访问 /svn/IAM/Trunk/Project2 和很快。

我用 SVNParentPath 和 SVNPath 尝试了以下方法

<Location "/svn/IAM/Trunk/Project1/">
        Dav svn
        SVNParentPath /svn/repos/IAM/Trunk/Project1
        AuthzSVNAccessFile IAM.svnAuth
</Location>

在 IAM.svnAuth 文件中包含以下内容

[IAM:Trunk/Project1]
Dev1 = r

[IAM:Trunk/Project1/one.properties]
Dev1 =

根据红豆书,基于路径的身份验证仅指向使用 AuthzSVNAccessFile。我想知道的是它是否可以同时做,以及如何做。

标签: apachesvn

解决方案


基于路径的授权可以通过组/用户完成

创建组

[组] readonly-developers = harry, sally, joe

读写开发人员 = 坦率、莎莉、简

每个人 = 哈利、莎莉、乔、弗兰克、简

可以像用户一样授予组访问控制权限。用“at”(@)前缀区分它们:

[reponame1:/projects/calc]

@readwrite-developers = rw

[reponame2:/projects/paint]

@readonly-developers = r

坦率=rw;


推荐阅读