如何配置DAV SVN访问?

问题描述 投票:0回答:1
authz_svn_module

设置了。目前,它运行良好,用户登录并可以很好地提交。

我想实现的是一个单个存储库,只能由单个用户读取并写入。

我的
/etc/httpd/conf.d/subversion.conf
如下

<Location /svn> DAV svn SVNParentPath /var/www/svn # Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "Subversion repositories" AuthUserFile /etc/svn-auth-users Require valid-user AuthzSVNAccessFile /etc/svnauthz.conf </LimitExcept> </Location>

我的

/etc/svnauthz.conf

看起来如下,

[groups]
devs = david.yell,user2,user3

[/]
$authenticated = rw
@devs = rw
* =

,但是,这当前正在限制对服务器上每个存储库的访问,这并不是理想的。我该如何配置特定于单个存储库的访问?
Additional,这是一台内部服务器,因此,尽管我确实感谢生产建议,但这并不是必不可少的。

update


我现在更新了我的

svnauthz.conf
文件,

[groups] devs = david.yell,user2,user3 [ProtectedRepo:/] david.yell = rw * = [/] $authenticated = rw @devs = rw * =

我试图将其用作参考,

http://svnbook.red-book.com/en/1.4/svn.serverconfig.pathbasedauthz.html

要更具体:截面名称的值是 形式[repos-name:path]或形式[路径]。如果您正在使用 SVNPARENTPATH指令,那么指定存储库很重要 您的部分中的名称。如果您省略它们,那么一个部分 [/some/dir]将匹配每个存储库中的路径/某些/dir。
这意味着我需要在服务器上声明每个存储库吗?目前约为30

	

SETUP每目录访问控件,以区分每个WebDAV存储库/路径的用户权限。
在Apache的情况下,需要加载mod_authz_svn模块,然后添加指向您自己的规则文件的AuthzsvnAccessfile指令(在httpd.conf文件中)。 (有关完整的说明,请参见称为“每个直接访问控制”的部分。)如果您使用的是SVNServe,则需要使Authz-DB变量(在SVNServe.Conf中)指向您的规则文件。
可以使用第二个Apache HTTPD模块Mod_authz_svn设置更细粒度的权限。该模块捕获从客户端到服务器传递的各种不透明的URL,请MOD_DAV_SVN解码它们,然后根据配置文件中定义的访问策略可能否决请求。

如果您已经从源代码构建了Subversion,则MOD_AUTHZ_SVN自动与MOD_DAV_SVN一起自动构建和安装。许多二进制分布也自动安装。要验证它的安装是否正确,请确保它在httpd.conf中的mod_dav_svn的LoadModule指令之后出现。

参考

基于Path的授权

svn
1个回答
1
投票
每个指导访问控制

subversion来源:authz.c

我还想知道您是否需要“需要在服务器上声明每个存储库”。据我所知,答案是肯定的...如果您想要宽容的规则。例如,如果您做典型的授予您的用户carte blanche的典型事情,那么您将无法在一个仓库中覆盖它。例如,给定:

[groups] all=user1,user2 [/] @all=rw [ProtectedRepo:/] user3=r then

user1
  • user2

    已读/写入对所有内容的访问,包括特定提到的ProtectedRepo

    user3
  • 也已读取访问权限。
  • 要限制用户在访问中,您需要一种不同的方法,例如单独列出每个仓库。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.