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

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

我是 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 服务器上使用某种配置管理软件,或者使用您自己的脚本来生成单独的位置。

相关内容