我在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理软件,或者你自己的脚本来生成单独的位置。