スポンサードリンク

2011年08月04日

SVNのsvnauthzファイルの権限の強さ

ネットで調べてもようわからんかったので、調査してみました。

SVNのsvnauthzファイルでSVNはアクセスを制限しています。

が、この設定が不可解な挙動をするので調べてみました。
デフォルトでは

[/]
admin = rw
* = rw
guest = r

とあります。

guest = r

と、ありますが、このままではguestユーザでのコミットは可能です。
どうも「svnauthz」ファイルの権限は「加算方式」で

* = rw ⇒ 全員readもwriteも可能
guest = r ⇒ guestはreadが可能

となっているので、guestもコミット可能、ということになるようです。
「guest = rがあるのでguestだけは弾かれる」ということはありません。
(デフォルトでこう書いてあるとまるで絞り込めるみたいですが)

ですので、
guest = r
を常に利かせたいのであれば、

[SampleProject:/]
guest = r
@user = rw

のように、「*(アスタリスク)」を使わない書き方をする必要があります。
つまりは、svnanthzに

----------------------------
[/]
admin = rw
* = rw
guest = r

[SampleProject:/]
guest = r
@user = rw
----------------------------

こう記載がある場合は、「SampleProject」ではguestユーザはコミットできません。

ただし、もし「SampleProject2」が存在する場合は、SampleProject2については記載がないので、
「SampleProject2」ではguestユーザはコミット可能です

[ ]の設定ごとに権限が独立しているということに気をつけてください。
posted by hinata_hisa at 14:14 | 東京 ☔ | Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする