如何限制指定用户的存储库?

我在linux上是一个新手,我在互联网上使用了很多教程来configuration我的Subversion。

我的颠覆使用webdav和我添加我的用户使用命令:

htpasswd /etc/apache2/dav_svn.passwd userb 

我的dav_svn.conf包含以下configuration:

 <Location /svn> DAV svn SVNParentPath /svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user <LimitExcept GET PROPFIND OPTIONS REPORT> </LimitExcept> </Location> 

在/ svn目录中,我创build了一些类似/ svn / test或/ svn / chat的软件库。

我的问题是:如何限制指定用户的存储库? 因为所有的用户在所有的仓库都有权限。

在AuthuserFile下面添加以下行

 AuthzSVNAccessFile /srv/svn/conf/authz 

通过修改你的svn根目录到authz文件的path。然后它可能看起来像

 [groups] admin = user devteam = user,user2,user3 [/] @devteam = r @admin = rw [/some_repo] @devteam = rw @admin = rw 

如果您希望将来能够通过Trac插件或类似方式让用户编辑自己的SVN访问权限 ,您也可以为每个SVN项目提供自己的Authz文件。 我的所有项目的SVN设置都保存在不同的文件中,每个项目一个。 就像是:

 <Location /svn/projectname> DAV svn SVNPath /usr/local/svn/projectname AuthzSVNAccessFile /etc/apache2/authz/projectname ... </Location> 

这将是一个手动pipe理的痛苦,所以你需要一些SVN服务器上的configurationpipe理软件,或者你自己的脚本来生成单独的位置。