SVN用户访问某些项目配置

时间:2011-05-17 08:22:10

标签: svn unix configuration ubuntu-10.04

我对unix系统完全陌生......已经玩了大约两周。 我已经设法安装了subversion并创建了一个存储库。

假设我们有用户:

internal_developer
external_developer_1
external_developer_2

我们有一个项目:

repositories/project1
repositories/project2
repositories/project3

如何独立配置每个用户和项目的访问权限。

  1. internal_developer - 可以访问所有项目(rw)
  2. external_developer_1 - 只能访问project1(rw)
  3. external_developer_2 - 只能访问project2(rw)
  4. 当我说“只能访问”时,这意味着他无法看到存储库/ *内容,只能查看他正在使用的项目。

    我试图寻找一些手册或教程我该怎么做...但所有这些都是为了更多的用户,那么我...


    感谢任何帮助。

    ---

    编辑。 (还不能回答我的问题)

    在文件/etc/apache2/mods-available/dav_svn.conf

    AuthUserFile的位置仅存储用户名和密码。

    然后

    需要添加新行:AuthzSVNAccessFile /usr/passwd/svn.authz

    然后是Floyd ^^的语法。

    我看了一眼:Subversion - how do I control user access for single repository when SVNParentPath is used?

    对于小组来说,它看起来更像是它。


    Stil,剩下的一个遗漏部分...无法配置管理员用户在http://xxxxxx/svn/

    时查看所有存储库

    给出错误

    禁止
    您无权访问此服务器上的/ svn /。

    即使我在svn.authz中发誓:

    [/]
    @internal = rw
    

1 个答案:

答案 0 :(得分:1)

如果您使用Apache(Mod_Dav_Svn)公开您的存储库,那么您需要在apache conf文件中为该指令添加Auth支持

<location ...>
   ... 
   AuthType Basic
   AuthName "My Subversion repository"
   AuthUserFile /srv/svn/conf/passwd
</Location>

在AuthUserFile中引用的文件中,您可以指定所需的权限,如下所示:

[/]
* =
[project1:/]
internal_developer = rw
external_developer_1 = 
external_developer_2 =
[project2:/]
internal_developer = rw
external_developer_1 =  rw
external_developer_2 =
[project2:/]
internal_developer = rw
external_developer_1 = 
external_developer_2 = rw

您还可以在每个文件夹的基础上以更精细的级别设置权限,如下所示

[/project1:/public_folder]
* = r

我希望这有帮助吗?

您可能还需要考虑使用第三方托管您的代码,CodeSpaces.com执行具有细化权限的subversion托管,此外您还不必担心管理自己的基础架构,备份等。