subversion の設定:
行いたいことは、複数リポジトリを登録して、それぞれのリポジトリに対して、ユーザ毎の権限を設定する。
実際に行いたい設定等は
- 指定したパスをリポジトリの仮想ルートに設定する。
- 指定された設定ファイル(svnserve.conf)を読み込めるようにする。
- 複数リポジトリに対してユーザー毎に権限を設定する。
の3つに分析できました。
実は1と2は一つの設定で実現できます。SVNサーバを起動する際に起動オプションとして
-r /home/svn/repos --config-file /etc/subversion/conf/svnserve.conf
を指定すればよい。指定する場所は /etc/sysconfig/svnserve ファイルで OPTIONS に上記を記入すると、svnserve コマンドが実行されるときに、引数として設定できる。
OPTIONS="-r /home/svn/repos --config-file /etc/subversion/conf/svnserve.conf"
3のユーザー毎に複数リポジトリに権限を与える場合には、設定ファイル svnserve.conf で authz-db = 〇〇 を有効にする必要がある。この設定を有効にして、指定されたファイルにユーザーとリポジトリの関係での権限を設定する。
[groups] d-group = d-mem001,d-mem002,d-mem003,d-mem004 [project/PJ001/:/] @d-groups = rw * = [project/PJ002:/] @d-group = rw * = r [project/PJ003:/] d-mem001 = rw * = r [project/PJ004:/] @d-group = rw * = r
プロジェクトのPJ001、PJ002、PJ004はグループで指定されている4人が読み書きでる。
PJ003だけは d-mem001 の方だけが読み書き権限を持っていて、他の人は読むことしか出来ない設定となる。