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的授权
我还想知道您是否需要“需要在服务器上声明每个存储库”。据我所知,答案是肯定的...如果您想要宽容的规则。例如,如果您做典型的授予您的用户carte blanche的典型事情,那么您将无法在一个仓库中覆盖它。例如,给定:subversion来源:authz.c
[groups]
all=user1,user2
[/]
@all=rw
[ProtectedRepo:/]
user3=r
then
user1
user2
已读/写入对所有内容的访问,包括特定提到的ProtectedRepo
,
user3