SVN Repo访问控制问题

时间:2013-03-14 19:27:31

标签: svn authorization

我尝试使用svn只允许特定群组访问特定的文件。这些文件位于随机目录中,其他文件位于同一目录级别。

示例:

/branches/libraries/all_access_file.php
/branches/libraries/some_access_file.php
/branches/codebase/lots_of_private_files.php
/branches/codebase/one_file_that_someone_can_see.php

当我设置特定文件权限时,例如

[repo:/branches/librares/some_access_file.php]
@admin = rw
@devs = rw
@some_guy = rw

我的预期结果是在svn co上看到" some_guy"组只获取该文件。但是他们得到了一个禁止的错误,因为他们被其他规则暗中否定:

[repo:/branches]
@admin = rw
@devs = rw

除了一个文件(其目录结构完全是随机且无关紧要的)之外,基本上拒绝访问整个存储库的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

你的文件中真的有@rw吗?如果是这样,我认为这不是有效的,可能会弄乱您的授权。

我也经常看到/从父母到孩子这样做......可能是svn按顺序解析身份验证,但我对此表示怀疑。因此,您的文件可能如下所示:

[repo:/branches]
@admin = rw
@devs  = rw

[repo:/branches/librares/some_access_file.php]
@some_guy = rw

另外,您是否允许匿名访问?如果你添加

@some_guy = r到/ branches这是否允许你的组的用户访问/写入有问题的文件?

最后,您可能希望作为测试添加具有rw访问权限的特定用户名..

thatguy = rw

看看是否有效。您测试的用户可能实际上不在some_guy组中吗?

请记住,用户无法签出(svn co)和单个文件,即使他们有权访问它。如果他们有权访问,他们可能会导出单个文件。

要解决此问题,请尽可能重新组织项目,以便您想要控制访问权限的文件都在某个文件夹中。这将允许用户签出该单个文件夹。

如果您只是想控制对某些人不会编辑的文件的访问权限svn不是您正在寻找的工具。使用cron作业运行某种类型的脚本,该作业根据文件系统更新具有正确权限的共享文件夹。