SVN访问控制不起作用

时间:2014-05-12 14:14:53

标签: svn

我在svn存储库中有一个项目,它包含更多分支和标记,并且有几个用户在同一个项目中但在不同的分支中工作。我给了特定用户写权限只能访问特定分支,但不允许其他分支访问,同样也允许其他用户写入不同的分支。

第1步:我使用

创建用户
htpasswd -m /etc/apache2/dav_svn.passwd username 

第2步:svnserve.conf

[general]
password-db = passwd
realm = reponame
anon-access = none
auth-access = write
authz-db = authz

第3步:passwd

username : passwd 

添加了用户& passwd,用于在passwd文件中为该项目创建htpasswd。

第4步:authz

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = r
user2 = r

[test:/branches/data1]
user1 : rw

[test:/branches/data2]
user2 : rw

因此,现在user2只能访问(提交,更新,签出)data2分支,并且可以读取所有其他文件夹,user2可以访问(提交,更新,签出){ {1}}分支。访问控制无法按预期从data1文件中正常工作。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

问题可能源于@alroc在评论中说的话。您使用svnserve.conf配置权限,但是您为Apache创建了用户。

Apache的mod_dav_svn没有读取svnserve.conf。相反,您需要install mod_authz_svnset up an AuthzSVNAccessFile。此文件似乎与svnserve.conf具有相同的语法。

答案 1 :(得分:0)

  1. 您必须知道,您拥有哪种类型的存储库(基于http,由Apache提供服务,或基于svn,由svnserve提供),并且只使用两种独立且不相关的身份验证类型中的一种:htpasswd对于apache,passwd用于svnserve
  2. Auth-database必须至少包含user1 + user2记录
  3. authz文件必须在所有记录中使用正确的语法:两个分支都有错误,格式正确
  4. object = rights