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

私の予想される結果は、「some_guy」グループの誰もがその1つのファイルしか取得できないことをsvn coで確認することです。しかし、別のルールによって暗黙的に拒否されているため、禁止されたエラーが発生します。

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

1 つのファイル (ディレクトリ構造が完全にランダムで無関係) を除いて、リポジトリ全体へのアクセスを本質的に拒否する適切な方法は何ですか?

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 to / branchsこれにより、グループのユーザーは問題のファイルにアクセス/書き込みできますか?

最後に、テストとして、ファイルへのrwアクセス権を持つ特定のユーザー名を追加することもできます。

thatguy = rw

それが機能するかどうかを確認します。テストしているユーザーが実際にはsome_guyグループに属していない可能性がありますか?

ユーザーは、アクセス権を持っていても、(svn co)および個々のファイルをチェックアウトできないことに注意してください。アクセスできるのがそれだけであれば、おそらく個々のファイルをエクスポートできます。

この問題を解決するには、可能であればプロジェクトを再編成して、アクセスを制御するファイルがすべて特定のフォルダーにあるようにします。これにより、ユーザーはその単一のフォルダーをチェックアウトできます。

人々が編集しない特定のファイルへのアクセスを制御しようとしているだけの場合、svnはあなたが探しているツールではありません。ファイルシステムに基づいて適切なアクセス許可を持つ共有フォルダーを更新するcronジョブを使用して、ある種のスクリプトを実行します。

于 2013-03-14T22:01:58.890 に答える