假设我想阻止某些用户访问我的 SVN 存储库中的某些文件夹。我只是做:
[/]
* = rw
[/NewSecretFolder]
* = rw
some_poor_sap =
但是,如果该文件夹从 SecretFolder 重命名为 NewSecretFolder 会怎样?用户 some_poor_sap 是否能够访问 /SecretFolder 的历史记录?
authz
文件授权机制完全基于路径,并忽略对象在其他版本中可能具有的不同名称。因此,当您访问某个版本的存储库时,将根据该版本的文件夹名称应用授权。
所以当我有这些授权时:
[/]
* = r
[/MyProject]
* =
devs = rw
我将项目重命名为MyRenamedProject
,然后像这样更改授权:
[/]
* = r
[/MyProject]
* =
devs = r
[/MyNewProject]
* =
devs = rw
在这里,我将旧项目路径保留在authz
文件中并授予读取权限,以确保开发人员始终可以读取重命名之前的项目历史记录。
另请注意,我们始终至少授予对 root 的读取访问权限,然后* =
在项目授权中再次将其取消,以解决奇怪的svn copy
问题。我怀疑这仅在您使用 apache 托管 SVN 时才相关。
是的,到时候他就可以了。你需要做
[/]
* =
然后在需要时允许访问所需的用户。我就是这样做的。