我在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
文件中正常工作。
我做错了什么?
答案 0 :(得分:0)
问题可能源于@alroc在评论中说的话。您使用svnserve.conf配置权限,但是您为Apache创建了用户。
Apache的mod_dav_svn没有读取svnserve.conf。相反,您需要install mod_authz_svn和set up an AuthzSVNAccessFile。此文件似乎与svnserve.conf具有相同的语法。
答案 1 :(得分:0)
htpasswd
对于apache,passwd
用于svnserve authz
文件必须在所有记录中使用正确的语法:两个分支都有错误,格式正确 object = rights