SVN 根目录下要设置哪些权限?

SVN 根目录下要设置哪些权限?

我正在尝试通过 Apache 提供对 SVN 服务器的远程访问。情况可以这样说明:

/root
    /public-project
        /trunk
        /branches
    /restricted-project
        /trunk
        /branches

只有一个存储库,其中包含两个项目。

公开项目任何人都可以查看(只能查看,不能修改)。受限项目只有属于特定组的用户才能读取/修改。配置如下:

<Location "/root">
  DAV svn
  SVNPath [...]
  SVNIndexXSLT [...]
  [...]
  <LimitExcept PROPFIND OPTIONS REPORT>
    require ldap-group CN=SVN Administrators,OU=Subversion,DC=example,DC=com
  </LimitExcept>
</location>

<Location "/root/public-project">
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    require ldap-group CN=Project1 Contributors,OU=Subversion,DC=example,DC=com
  </LimitExcept>
</location>

<Location "/root/restricted-project">
  require ldap-group CN=Project2 Contributors,OU=Subversion,DC=example,DC=com
</location>
  1. 它是否足够安全,或者客人是否有可能从受限项目访问敏感信息?

  2. 通过SVN更新公共项目源时,出现以下错误:

    无权打开编辑操作的根目录

    Apache error.log 显示以下元素:

    驱动更新报告编辑器时发生故障 [500,#220000]
    未获得打开编辑操作根目录的权限 [500,#220000]

    至于access.log,它显示SVN客户端发出了一堆PROPFIND(response: HTTP 207)和OPTIONS(response: HTTP 200),最后:

    “报告/root/!svn/vcc/default HTTP/1.1” 500 241

    我应该怎么做才能解决这个问题,即为公共项目启用公共只读访问权限,同时对未经授权的用户隐藏受限访问权限?

注意:授予 GET 权限/root使访客能够加载公共项目的源代码,但也使公共行为成为默认行为。我更愿意限制访问权限,并仅在包含公共项目的节点上授予访问权限。

答案1

我从头构建了一个新环境,并尝试了它的配置,但看起来仅有的方法是默认将所有内容设置为公开,然后明确限制特定的项目。

从安全角度来看,这完全是愚蠢的,尤其是在创建大量项目的情况下,有时这些项目并非完全自动化,很容易因忘记设置限制而犯错。话虽如此,这也迫使进一步推动自动化,这只会是有益的。

如果有人想试用这些设置,我可以提供当前使用的配置。

相关内容