« WTP | Main | Element#getElementsByTagName »

2005.10.08

Subversion + AuthzSVNAccessFile

 Subversionリポジトリに対して、http(s)でアクセスする場合はApacheが必要となりますが、その際に、

「パスA以下はaさんは読み書きすることができるがbさんは読み込みのみ、cさんは一切不可」

とかいうような設定を行いたくなってくると、AuthzSVNAccessFileをhttpd.confに設定することになります。
 設定方法はSubversionによるバージョン管理内の、httpd, Apache HTTP サーバページに記載されていますが、複数のSubversionリポジトリを扱っているときにちょっとハマってしまったので、そのメモ。
 例えば、<Location /svn>においてSVNParentPathを指定しておき、他に<Location /svn/Repos1>および<Location /svn/Repos2>の指定があった場合(Repos1とRepos2とはそれぞれ利用ユーザが異なるため、使用するAuthUserFileは別のものを使用していると仮定)。
 Repos2の配下のディレクトリに対してのみAuthzSVNAccessFileを適用したい場合でも、この指定は<Location /svn>の部分で行う必要があるみたいです。<Location /svn/Repos2>内で指定しても、何か上手く反応してくれませんでした(誰でも閲覧できるか、誰も閲覧できないか、500エラーか、という結果になってしまいました)。ルート部分で指定する必要があるってことでしょうか?
 で、AuthzSVNAccessFileで指定したファイルの内容に、

[groups]
repos1-developers = user1, user2, user3
repos2-developers = usera, userb, userc

[Repos1:/]
@repos1-developers = rw

[Repos2:/pathA]
usera = rw
userb = r

[Repos2:/pathA/pathB]
usera =
userb = rw

[Repos2:/pathC]
userc = rw


のような感じで登録すればOKっぽいです。cさんでログインしているときにパスAを見ようとした場合や、aさんでログインしている状態でパスAからパスBに移動しようとしたら、再度認証が要求されます。

|

« WTP | Main | Element#getElementsByTagName »

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Subversion + AuthzSVNAccessFile:

« WTP | Main | Element#getElementsByTagName »