home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2009/05/30/svnserver.confの設定メモ

日記/2009/05/30/svnserver.confの設定メモ

日記 / 2009 / 05 / 30 / svnserver.confの設定メモ
id: 390 所有者: msakamoto-sf    作成日: 2009-05-30 13:25:04
カテゴリ: Subversion 

普段は file:// だったり http(s):// 経由でSVNにアクセスしていますが、svn:// 経由のアクセスを行う場合も時々あります。その時は svnserve.conf を調整してユーザー認証を設定できますが、少し嵌った事もあり、メモ。なお以下の説明はSubversionの1.5.6ベース(TortoiseSVNなら1.5系列)。

svnserve.confと認証周りのデフォルト値

svnadmin createでリポジトリを作成された、conf/ディレクトリの中は

conf/
    svnserve.conf
    passwd
    authz

のようになっています。svnserve.conf が、svnserveによる svn:// 経由でのアクセスで使われる設定ファイルになります。passwd はユーザ一覧, passwd はアクセス許可設定ファイルになります。

svnserver.confのユーザ認証周りで今回のメモに関連する項目は、生成直後は次のようになっています。

[general]
...
# anon-access = read
# auth-access = write
...
### Uncomment the line below to use the default password file.
# password-db = passwd
...
### Uncomment the line below to use the default authorization file.
# authz-db = authz
...

分かりづらいのですが、anon-access と auth-access はコメントアウトされているものがデフォルト値になっています。
逆に、password-dbとauthz-dbは、"Uncomment..." とあるようにコメントアウトされていれば未設定として扱われます。

今回嵌ったのは、password-dbとauthz-dbはコメントアウトを外さないと適用されない事に気づかず、コメントアウトしたまま、passwdやauthzファイルを弄くり回し、「おかしい・・・checkoutはできるのに、checkinでどうしても認証に失敗する・・・」と悩んでいたわけです。

checkoutは誰でもOK、checkinは認証されたユーザだけ。特に細かいアクセス制御は不要の時

svnserve.conf :

[general]
...
# anon-access = read
# auth-access = write
...
### Uncomment the line below to use the default password file.
password-db = passwd

となります。「checkoutは誰でもOK、checkinは認証されたユーザだけ。」というのは、anon-accessとauth-accessのコメントアウトされているデフォルト値で実現されていますので、後は、認証するユーザ一覧のpasswdファイルをpassword-dbに設定して、コメントアウトを外すだけです。
password-dbにはフルパス指定も出来るので、複数リポジトリでユーザを一元化したい場合はどこか共通のpasswdファイルをフルパスで指定することで対応できると思います。

checkoutもcheckinも認証ユーザだけ。特に細かいアクセス制御は不要の時

svnserve.conf :

[general]
...
anon-access = none
# auth-access = write
...
### Uncomment the line below to use the default password file.
password-db = passwd

"anon-access" を none にすることで、認証ユーザのみcheckoutできるようになります。

checkoutフリー、認証ユーザのみcheckin, 細かいアクセス制御が必要の時

svnserve.conf :

[general]
...
# anon-access = read
# auth-access = write
...
### Uncomment the line below to use the default password file.
password-db = passwd
...
### Uncomment the line below to use the default authorization file.
authz-db = authz

authz-dbをコメントアウトし、authzファイルを指定します。

リポジトリ毎ではなく、svnserve全体でsvnserve.confを統一したい場合

リポジトリディレクトリ毎のconf/svnserve.confではなく、svnserve全体で設定を統一したい場合は、svnserveの起動時にsvnserve.confを指定します。

例:

$ svnserve -d -r /opt/SVNREPOS --config-file /opt/.svnserve/svnserve.conf

こうしておけばpassword-dbとauthz-dbも自然と全リポジトリ共通の設定となりますので、ユーザ管理(password-db)とアクセス制御(authz-db)も一元管理が可能となります。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-05-30 14:00:33
md5:b4472b9ef8a8ed1f07ce90e10fa3296b
sha1:ce3f28dea67ad7fd93a1d88548187c6c0305a79c
コメント
コメントを投稿するにはログインして下さい。