SVN。 ACL具有相同名称的不同存储库

时间:2012-09-20 15:47:56

标签: apache svn configuration acl

我在一台带有Apache dav-svn模块的Ubuntu服务器上运行SVN服务器,通过http访问它。

我有几个客户的项目,所以我在/ var / svn

上创建了一个树结构
/var/svn/client_1
/var/svn/client_1/project_1
/var/svn/client_1/project_2
...
/var/svn/client_2
/var/svn/client_2/project_1
/var/svn/client_2/project_2

每个项目都是一个新的存储库,当我需要创建一个新项目时,我会执行以下操作

在客户端文件夹中创建一个新存储库

  

svnadmin create / var / svn / client_X / project_Y

在dav_svn_conf上创建一个新条目

<Location /client_X>
  DAV svn
  SVNParentPath /var/svn/client_X

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
  AuthzSVNAccessFile /etc/apache2/svn-acl.txt
</Location>

所以此刻我可以访问:     https://my_svn_server.com/client_x/project_y

在/etc/apache2/svn-acl.txt文件中,我可以完全控制所有存储库

[/]
my_user=rw

现在我想让客户访问他所拥有的项目,但我不能这样做。如果我使用存储库名称,则他可以访问其他客户端的所有存储库

[project_1:/]
client_user=rw

他可以访问client_1 / project_1和client_2 / project_1

我想做以下事情:

[client_1:/]
client_user=rw

我该怎么办?我应该改变创建存储库的方式吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我建议不使用SVN的ACL,而是使用Apache / HTTP Auth通过Location规则管理网址空间,简单AllowDeny