TracLightningをインストールしたのでメモ(2) 最初の設定

TracLightningをインストールしたのでメモ - kanonjiの日記 の続きです。


TracLightningをインストールしたので、最初に行なった設定などをまとめます。

Subversionのアクセス権を変える

設定ファイル
%TRAC_LIGHT_HOME%\projects\svnauthz*1
デフォルトの設定
[groups]

[/]
admin = rw
* = rw
guest = r
変更後の設定
[groups]
developer = foo,bar,foobar

[/]
admin = rw
guest = r
@developer = rw

デフォルトでは「* = rw」とあるように、全てのユーザーにリード権限もライト権限(コミット可能)も与えています。
TracLightningでは、SVNリポジトリへのアクセスはDigest認証が必要なので、問題ないような気もしますが、例えばリード権限だけは一般公開するといった運用をする場合は、注意が必要です。

アスタリスク変数 (*) も特に注意しておく価値があります: それは匿名ユーザにマッチするような 唯一のパターン です。Locationブロックで匿名と認証されたアクセスの 組合せを許すように設定した場合、すべてのユーザは Apache に対して匿名で アクセスするところから話が始まります。 mod_authz_svn はアクセスするパスのために 定義された * の値を探します; みつからなければ Apache はクライアントに対して実際に認証要求を出します。

http://subversion.bluegate.org/doc/ch06s04.html#svn.serverconfig.httpd.authz.perdir

オライリーの「Subversionによるバージョン管理」という本のHTML版によると、どうやら認証が必要のないケースのある設定をした場合、アスタリスク変数(*)は認証を経ていない匿名ユーザも含めたものになると書いてあるように見えます。*2


うっかりミスを防ぐ為に、Subversion groupとしてdeveloperを作って、管理者が明示的に権限を与える形にしました。
なお、Subversion groupの[groups]セクションは、Tracの管理画面から設定できるようになっています。
なので、「* = rw」を「@developer = rw」に変えるだけで充分です。

Subversion groupを作る

TracLightningでは、TracSubversionのユーザは一応統合されていますが、グループは別々に持っています。
前述の「developer」というSubversion groupはTracのグループとは別扱いです。*3


svnauthzを直接編集してもいいですが、Subversion groupの設定はTracの管理画面からもできます。
今回は前述の通り「developer」グループを作り、基本的にTracに開発者ユーザーを登録したら、管理者が「developer」グループに追加する事にしました。

設定画面
http://localhost/trac/SampleProject/admin/subversion/svnauthz

注意点として、Tracの管理画面はTracプロジェクト毎に別個存在し、設定も別だったりしますが、Subversion groupの設定は全プロジェクトで共通です。
逆に、同じ画面にある権限の設定は、Tracプロジェクト毎に別個になっています。
svnauthzファイルで言うと[/SampleProject]の設定は出来ますが、[/]の設定は管理画面から出来ないようです。

初期ユーザーのパスワードを変更する

ユーザー パスワード
admin admin
guest guest
leader leader

Tracプロジェクトを作成すると、初期では上記3つのユーザーが作られています。
Tracのユーザーはちょっと変わっていて、ユーザーがグループでもあります。*4
とあるプロジェクトの管理者が自分であれば、まずadminでログインし自分のアカウントを作成します。
そしてそのユーザーをadminグループに入れます。
同じように、自分が開発者のリーダーでもあるなら、leaderグループにも入れます。


これらはグループとして使っていてもユーザーでもあるので、いつまでもadmin/adminでログインが出来ると危ないです。
なのでパスワードを変えておきます。*5

SampleProjectはそのまま残しておく事に

SampleProjectで、色々と練習や実験をするのもいいですが、Tracのマニュアル的なWiki文章がサンプルとしておいてあります。
こういうのは消したりしないで取っておきたいので、SampleProjectに限りauthenticatedグループの権限を全部取り除きました。
まったく無くしてしまうと、authenticatedグループが見えなくなってしまうので、WIKI_VIEW権限だけ加えておきます。


なお、authenticatedグループというのは特殊なグループで、認証済みユーザー全てが含まれます。
Tracに登録してあるユーザー全てに権限をつけたりするのに使います。
逆に、ログインしていないアクセスは、anonymousグループの権限を使います。
anonymousグループからWIKI_VIEW権限を消すと、ログインしなければWikiを見れなくなります。

グローバル設定ファイルを編集する。

%TRAC_LIGHT_HOME%\python\share\trac\conf\trac.ini
[trac]セクションで文字コードを変更する。
default_charset = utf-8

Tracリポジトリブラウザで、ソースコードを見る際、コメントなど日本語部分の文字化けを回避するものです。
svnリポジトリに格納するソースコード文字コードを入力します。
web系が多く、基本的にutf-8で開発しているので、utf-8にしました。
プロジェクトによって異なる場合は、プロジェクト毎の設定ファイルに記述します。

%TRAC_LIGHT_HOME%\projects\trac\SampleProject\conf

[header_logo]セクションでロゴのリンク先を変更する。
link = http://localhost/

何故かデフォルトは「http://www.example.com/」になっていて、うっかりロゴをクリックするとイラっとします。
プロジェクトのホームに設定するには、プロジェクト毎の設定ファイルにそれぞれ記述しないとですが、せめてそのTracのホームに移動したいです。
URLは実際に自分のTracにアクセスするためのものを入力してください。

*1:インストールした環境では、何故か%TRAC_LIGHT_HOME%が環境変数にありませんでした。廃止されたのかな?

*2:どうも言い回しが分かり難いので断言し難いですが・・・

*3:TracTracでユーザー=グループという、変わった仕組みのようですが

*4:そういえばdeveloperというグループはあるけど、ユーザーがなかったような・・・?

*5:この初期ユーザーを消してしまって、権限設定を一からやり直してもいいかも知れません。