我是 Linux 新手,我使用互联网上的大量教程来配置我的 Subversion。
我的 subversion 使用 webdav 并且我使用以下命令添加我的用户:
htpasswd /etc/apache2/dav_svn.passwd userb
我的 dav_svn.conf 包含以下配置:
<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 中我创建了一些存储库,例如 /svn/test 或 /svn/chat。
我的问题是:如何限制指定用户的存储库?因为所有用户在所有存储库中都拥有权限。
答案1
在 AuthuserFile 下方添加以下行
AuthzSVNAccessFile /srv/svn/conf/authz
当然,将路径更改为你的 svn 根目录以指向 authz 文件。然后它可能看起来像
[groups]
admin = user
devteam = user,user2,user3
[/]
@devteam = r
@admin = rw
[/some_repo]
@devteam = rw
@admin = rw
答案2
补充一下 Mike 之前的回答,如果您希望未来能够让用户通过 Trac 插件编辑自己的 SVN 访问或者类似地,您也可以为每个 SVN 项目提供自己的 Authz 文件。我所有项目的 SVN 设置都保存在单独的文件中,每个项目一个。例如:
<Location /svn/projectname>
DAV svn
SVNPath /usr/local/svn/projectname
AuthzSVNAccessFile /etc/apache2/authz/projectname
...
</Location>
手动管理会很麻烦,所以您需要在 SVN 服务器上使用某种配置管理软件,或者使用您自己的脚本来生成单独的位置。