Security SVN';s身份验证和文件夹重命名

Security SVN';s身份验证和文件夹重命名,security,svn,authz,Security,Svn,Authz,假设我想阻止某些用户访问我的SVN repo中的某些文件夹。我只是: [/] * = rw [/NewSecretFolder] * = rw some_poor_sap = 但如果该文件夹从SecretFolder重命名为NewSecretFolder呢?用户sap是否能够访问/SecretFolder的历史记录?是的,届时他将能够访问。 你需要做什么 [/] * = 然后允许在需要的地方访问所需的用户。我就是这样做的。文件授权机制完全基于路径,忽略了对象在其他版本中可能具有的不同名称

假设我想阻止某些用户访问我的SVN repo中的某些文件夹。我只是:

[/]
* = rw

[/NewSecretFolder]
* = rw
some_poor_sap = 
但如果该文件夹从SecretFolder重命名为NewSecretFolder呢?用户sap是否能够访问/SecretFolder的历史记录?

是的,届时他将能够访问。 你需要做什么

[/]
* =

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

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

因此,当我获得这些授权时:

[/]
* = r

[/MyProject]
* = 
devs = rw
我将项目重命名为
MyRenamedProject
,然后我更改如下授权:

[/]
* = r

[/MyProject]
* = 
devs = r

[/MyNewProject]
* = 
devs = rw
在这里,我将旧的项目路径保存在
authz
文件中,并授予读取权限,以确保开发人员始终可以从重命名之前读取项目的历史记录


还请注意,我们总是至少授予根目录的读取权限,然后在项目授权中使用
*=
再次将其删除,以解决此问题。我怀疑这只有在您使用apache托管SVN时才相关。

我们也是这样开始的,但是使用的是
SVN copy
。出于某种原因,您至少需要对项目的所有父文件夹(直到根目录)具有读访问权限,以便使用
svn copy
,而不仅仅是对正在进行更改的文件夹具有读写访问权限。我明白了,可能我只是从未使用过svn copy,也感谢您提供的信息:-D