【问题标题】:Setting up a read-only user for SVN-Apache为 SVN-Apache 设置只读用户
【发布时间】:2012-02-15 08:00:09
【问题描述】:

我已按照“使用 Subversion 进行版本控制”一书中关于设置基于 Apache 的 SVN 配置的正确方法的说明进行操作。到目前为止,我的“/etc/httpd/conf.d”目录中有一个“subversion.conf”文件。在该文件中,我定义了一个名为“/svn”的位置,并将其映射到我的颠覆存储库“/x1/svn/(repo1),(repo2),(etc)”的位置。也就是说-我还创建了一个拥有存储库区域的用户“svn”,并向 Apache 添加了组权限,因此可以从 Apache 访问存储库,而无需设置 Apache 拥有的所有内容(我认为这是一种奇怪的做法东西)。

无论如何。这是我遇到的问题。我想设置“一个”用户,如果我想允许他们下载特定存储库代码库的源代码副本,我可以将其分发给人们。这里有几个级别的复杂性。

  1. A) 允许他们成为普通用户,授予对所有存储库的只读访问权限
  2. B) 为特定存储库提供特定的“只读”用户

无论哪种方式,我想解释如何完成选项 (A) 会更容易,鉴于我目前为我的网络服务器设置的配置,我该怎么做?以下是我的“subversion.conf”文件的副本,它工作得很好,但是要求访问所需存储库的任何用户都具有完全访问权限:

   <Location /svn>
   DAV svn
   SVNParentPath /x1/svn

   # Require SSL connection for password protection.
   # In order to do this Apache needs to use a self-signed certificate
   # Talk to Cordel and/or consult Apache Docs and OpenSSL docs
   # SSLRequireSSL

   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /etc/svn-auth-file
   Require valid-user
   </Location>

那么 - 我如何添加一个普通用户,该用户对于位于 SVNParentPath(选项 A)中的所有存储库都是只读的?并且为了额外的信用 - 我如何为各个存储库创建唯一的只读用户(选项 B)。所有这一切同时保留了必须进行身份验证才能对所有存储库进行完全读写访问的用户。

我尝试自己完成此任务,但是,当我试图消化“限制”方法的含义时,我因缺乏对哪些方法可用以及每种方法实际上是什么的直接解释而感到困惑关于 SVN/Apache 配置。我的意思是常识告诉我 GET 是 GET(只读)并且 POST 是写操作,但这只是常识。我已经编程太久了,无法假设某些 A-Hole 没有创建具有写入数据能力的 GET 操作。这是我的困境。有人能解释一下吗?

谢谢!

【问题讨论】:

    标签: apache security svn


    【解决方案1】:

    查看Path Based Authorization 文件,您可以在其中定义只读用户:

    [/]
    username = r
    

    或者您可以为不同的存储库定义一个用户

    [repo1:/]
    username = r
    
    [repo2:/]
    username = r
    

    要实现上述目标,您需要在 Apache 配置中添加以下内容:

    LoadModule authz_svn_module path/to/mod_authz_svn.so
    ...
    AuthzSVNAccessFile /path/to/access/svnaccess
    

    【讨论】:

    • 我首先遇到的问题是无法识别存储库名称。原因是我在配置文件中使用了 SVNPath 而不是 SVNParentPath。切换到 SVNParentPath 后效果很好!\
    • 如果您不需要它们也值得disabling path-based checks,因为这将提高性能。
    猜你喜欢
    • 2016-04-16
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2018-05-28
    相关资源
    最近更新 更多