SVN的authz和文件夹重命名

时间:2011-01-18 09:19:58

标签: security svn authz

假设我想阻止某些用户访问我的SVN仓库中的某些文件夹。我只是这样做:

[/]
* = rw

[/NewSecretFolder]
* = rw
some_poor_sap = 

但是如果该文件夹从SecretFolder重命名为NewSecretFolder怎么办?用户some_poor_sap是否能够访问/ SecretFolder的历史记录?

2 个答案:

答案 0 :(得分:2)

是的,那时他就可以了。 你需要做

[/]
* =

然后允许在需要时访问所需的用户。我就是这样做的。

答案 1 :(得分:2)

authz文件授权机制完全基于路径,并忽略对象在其他修订版中可能具有的不同名称。因此,当您在特定版本中访问存储库时,将根据该版本的文件夹名称应用授权。

所以当我获得这些授权时:

[/]
* = r

[/MyProject]
* = 
devs = rw

我将项目重命名为MyRenamedProject,然后我更改了这样的授权:

[/]
* = r

[/MyProject]
* = 
devs = r

[/MyNewProject]
* = 
devs = rw

在这里,我将旧项目路径保留在authz文件中并授予读取权限,以确保开发人员始终可以在重命名之前读取项目的历史记录。

另请注意,我们始终至少授予root用户读取权限,然后在项目授权中再次使用* =将其删除,以解决strange svn copy issues问题。我怀疑这只有在您使用apache来托管SVN时才有意义。