svnserveデーモンを起動させるための設定方法。 ここではローカルネットワーク内からのアクセスのみを許可する条件で設定を行う。
svnserveの設定
まずはsvnserveを動作させるためのユーザ(ここではsvnとする)を作成する。
続いてリポジトリを格納するルートディレクトリ(ここでは/srv/repos)を作成する。 svnserveが書き込めるようにオーナをsvnにしておく。
/etc/servicesにsvnのサービス名と使用ポート番号が記述されていることを確認する(もしなければ追記する)。
/etc/hosts.allowに下記の内容を追記し、内部ネットワークからの接続のみを許可する。
また、iptablesなどを使ってファイヤーウォールの設定がされている場合は、3690番のポートを忘れずに空けておくこと。
続いて、inetdもしくはxinetdでsvnserveを起動するための設定を行う。
xinetd経由でsvnserveを起動する場合
xinetdの設定をするために、/etc/xinetd.d配下にsvnというファイルを作成し、下記の内容を書き込む。
設定項目の意味は次の通り。
- user
- svnserveを実行するユーザ。
- server
- svnserveへのフルパス。
- server_args
- svnserveに渡す引数。 「-r /srv/repos」でリポジトリのルートディレクトリを/srv/reposに設定している。
- log_on_failure
- 接続に失敗した場合、ユーザ名をログに記録する。
続いて、chkconfigコマンドを使ってsvnserveを起動できるようにする。
上記のコマンドを打ったあと、次のように表示されればOK。
起動設定が整ったところで、xinetdを再起動する。
telnetでsvnserveに接続して、次のようなメッセージが表示されればsvnserveが正常に動作していることが確認できる。
inetd経由でsvnserveを起動する場合
/etc/inetd.confにsvnserveの起動パラメータを追記する。 xinetdの場合と同様、「-r /srv/repos」でリポジトリのルートディレクトリを/srv/reposに設定している。
起動設定が整ったところで、inetdを再起動する。
telnetでsvnserveに接続して、次のようなメッセージが表示されればsvnserveが正常に動作していることが確認できる。
リポジトリの作成・設定
まずはリポジトリを作る。 ここではsandboxというリポジトリを/srv/reposに作成する。
続いて、リポジトリのアクセス設定を行う。 リポジトリを作成すると自動的にconfディレクトリが作成される。 その中に次の三つのファイルが作成される。
- svnserve.conf
- svnserve経由でのリポジトリへのアクセス制限。 ユーザ設定ファイル・アクセス設定ファイルの指定など。
- passwd
- ユーザとパスワードの指定。
- authz
- ユーザごとのアクセス設定。
まずはsvnserve.confの設定例。
anon-access、auth-accessに設定できる値は次の三つ。
- none
- アクセスを許可しない
- read
- 読み込み権限を与える
- write
- 読み込み、書き込みの両方の権限を与える
続いてpasswdの設定例。 リポジトリにアクセスするユーザの数だけ「ユーザ名=パスワード」の形式で記述する。
authzについては省略。 passwdファイルの編集が終わったら、アクセス権限をsvnだけに設定して、他のユーザからアクセスできないようにする。
ここまでで設定は完了。 作成したリポジトリをチェックアウトできるようになる。