アクセス制限について混乱させるパス継承の問題があるようです。たとえば、rw
グループ/ユーザーにアクセスを許可し、それを/../../secret
無制限に制限したい場合は、すぐに私に唾を吐きます。
以下は、dav_svn.authzで達成したいタスクの例です。
[groups]
grp_W = a, b, c, g
grp_X = a, d, f, e
grp_Y = a, e,
[/]
* =
@grp_Y = rw
[somerepo1:/projectPot]
@grp_W = rw
[somerepo2:/projectKettle]
@grp_X = rw
予想:すべてのリポジトリに同時にgrp_Y
アクセスし、そのリポジトリにのみアクセスできます。rw
grp_W
grp_X
何が起こるか:grp_Y
すべてのリポジトリにアクセスできますが、grp_W
何もgrp_X
アクセスできません。
アクセス順序を反転してすべての人にアクセス権を付与し、各リポジトリでこれを制限すると、期限切れのルールをすぐに無視(権限の削除)し、すべての人にルートレベルで付与されたアクセス権を付与します。
ユーザー固有の条項と同じことを行うグループを破棄してください。たとえば、次のようになります。
[/]
a = rw
b =
c =
d =
e =
f =
g = rw
[somerepo1:/projectPot]
a = rw
b = rw
c = rw
d =
e = rw
f =
g = rw
[somerepo2:/projectKettle]
a = rw
b
c
d = rw
e = rw
f = rw
g
これは同じ結果をもたらします。 ~によると文書私はすべてのプロトコルに従うので、これは不可能なことです。
dav_svnを使用してApache2で実行
ベストアンサー1
一連の頭が痛い日の終わりに、私はこれを* = rw
使わずに残しましたSVNParentPath
。振り返ってみると、突然読み順が問題だったという感じがしました。
まず、私の例の命名規則は完全に間違っています[<repo_name>:<path-in-repo>]
。私の実際のルールは正しいので、構文は根本的な原因ではありません。
主な問題は、authzファイルが最初の読み取り規則または使用可能な一致の「特定性」順序を適用する必要があることです。私が考える限り、すべてがルートと完全に一致するでしょう。したがって、例の順序を逆にすると、次のようになります。
[groups]
grp_W = a, b, c, g
grp_X = a, d, f, e
grp_Y = a, e,
[ProjectPot:/]
@grp_W = rw
[ProjectKettle:/]
@grp_X = rw
[/]
* =
@grp_Y = rw
それに応じて受け入れられ、実装されます。これは行動です。録音されない私の考えでは、これは些細なことによる巨大な混乱です。