2

我想用 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

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

4

1 回答 1

0

你的文件中真的有@rw 吗?如果是这样,我认为这是无效的,并且可能会破坏您的授权。

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

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

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

另外,你允许匿名访问吗?如果你添加

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

最后,作为测试,您可能希望添加一个对文件具有 rw 访问权限的特定用户名。

那家伙 = rw

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

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

为了解决这个问题,如果可能的话,重新组织你的项目,使你想要控制访问的文件都在某个文件夹中。这将允许用户签出该单个文件夹。

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

于 2013-03-14T22:01:58.890 回答