特定のユーザーが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ファイルに保持し、読み取りアクセスを許可して、開発者が名前変更前からプロジェクトの履歴を常に読み取ることができるようにしました。
また、奇妙な問題* =を回避するために、常に少なくともルートへの読み取りアクセスを許可し、プロジェクトの承認でルートを再度削除することにも注意してください。これは、apacheを使用してSVNをホストしている場合にのみ関係があると思います。svn copy