









[blog]
[ML]
[todo]
[CVS]
[bug]
[apache log]
[swiki log]
[statistics]
[map]
[man]
[info]
[アンテナ]
Jitterbug
注意 Kondara Projectが解散して、JitterBug-i18nは行方不明です。ソース見つけた方は、教えて下さい。
なんか同名のバンドか何かがあるみたいですが、ここはあくまで
バグトラッキングシステムの1つである Jitterbugの解説です。
このソフトウェアは、SAMBAチームで書かれたようです。で、それが独立して
GPLで配布されるようになりました。JiterBugは、C言語で書かれたCGIに
なります。
JitterBugは、カスタマイズされていろんなところでつかわれているようで、
Kondara-ProjectsやRubyのバグトラッキングシステムとしても
つかわれているようです。
JitterBugには、Kondaraで日本語かされた「バグ宙太」があります。
「バグ宙太」とJitterBug国際化版 JitterBug-i18nは同一のものです。

JitterBugのインストール
前回は、挫折したJitterBugのインストールですが、
今日は少し時間もあるので、ちゃんとやってみる。
- 最新版をDLする。
- tar玉を展開。
- ソース(source)ディレクトリに移動して、いつものおまじない。
ここまでは、OK、バイナリは誰が(どのユーザで)作成してもよいです
(当然ですが)
以下が肝心の設定

JitterBugの設定。
JittterBugではセキュリティ上の問題はおいておいて、chrootします。
ですので、オーナーをrootにして、setuidするためにsuidビットを立て
る必要があります。
まず、JitterBugを動作させるユーザアカウントを決める必要があります。
メール送信上の利便性から、個別にアカウント作ると吉とのことですが、
面倒なので、私は既存のアカウントを使用することにしました。
以降の文書では、JitterBugを動作させるアカウントをaccountとします。
1. jitterbugのデータを配置するディレクトリを作成する。
・jitterbugのデータを配置するディレクトリを作成します。
・Webからアクセスできない場所に作成してください。(セキュリティ上の配慮です)
・chrootで移動するので、どこでも構わないのですが、ここでは
~/JitterBugとします。
su account
cd ~
mkdir JitterBug
2. Webから一般の人がアクセスできるものと、管理者 及び 関係者のみが
アクセス可能なインターフェイスを作成します。
・簡単に設定するには、apacheの基本認証を使用します。
・一般のWeb閲覧者からのアクセスは、/cgi-bin/JitterBug/bug-trackingで、関係者のアクセス用には
/cgi-bin/JitterBug/bug-tracking.privateで対応させるようにします。(あくまでも一例ですよ)
・apacheの場合、下記のように設定します。
[ httpd.confに追加 ]
<Location /cgi-bin/JitterBug/bug-tracking.private>
AuthType Basic
AuthName bug-tracking
AuthUserFile /etc/httpd/conf/apache.auth
<Limit GET POST>
require user ユーザ名称
</Limit>
</Location>
AddHandler cgi-script .private
管理者用のものが動かない場合、上記を設定しましょう、
[ apache.auth ]
作成するには、専用コマンドを使用します。
htpasswd -c /etc/httpd/conf/apache.auth ユーザ名称
この後で2回パスワードを聞いてくるので、同一のパスワードを
入力します
このあとで、apacheを再起動します。
・apacheにHUPシグナル送るか、起動スクリプトをrestartで実行します。
・私の場合、/etc/rc.d/init.d/httpd restart
3. 設定ファイルを設置する。
・カスタマイズしない設定ファイルを1で作成したディレクトリ配下に設置します。
・アーカイブのconf以下をcp -r でコピーします。
4. バイナリを設置する。
・cgi-bin/JitterBug/にjitterbug(作成したバイナリ)をコピーします。
・この設定の場合、jitterbugをbug-trackingにリネームします。
・同様に、bug-trackingをbug-tracking.privateにコピーします。
5. パーミッションの変更
・設置したバイナリの所有者をrootにグループをapache用ゲストグループ(通常nobody)に設定します。
chown root.nobody bug-tracking bug-tracking.private
・パーミッションの変更とsuidビットの設定をします。
chmod 04710 bug-tracking bug-tracking.private
・パーミッションが正しく設定されているか確認しましょう。
これはs間違って設定された場合、簡単にroot権限を取得できる可能性があります。
くれぐれもご注意を。
6. jitterbugの管理ファイルの作成
・/etc/jitterbugというディレクトリを作成します。
mkdir /etc/jitterbug; cd /etc/jitterbug
・上記パスに、bug-trackingというファイルをtouchします。
touch bug-tracking
・作成したファイルを編集して、(とりあえず)以下の内容とします。
from address = account@your.host.name
chroot directory = /home/account/JitterBug(1で作成した絶対パス)
base directory = /
guest gid = 65534(nobodyのUID)
guest uid = 65534(nobodyのGID)
uid = XXXX(accountのUID)
gid = YYYY(accountのGID)
・同様の内容で、bug-tracking.privateを作成します。(コピーします)
7. 早速ゲスト用画面の確認をする。
・ブラウザで、http://localhost//cgi-bin/JitterBug/bug-trackingを開きます。
・ここまでが正常であれば、ゲスト用のページが開きます。
・ブラウザで、http://localhost//cgi-bin/JitterBug/bug-tracking.privateを開くと
基本認証画面になります。
8. メールインターフェイスの設定
・ここでは、qmailを使っている人を対象にしています。
・jitterbug用アカウント用にqmailの設定を施す。
Maildirを作成します。
/var/qmail/bin/maildirmake $HOME/Maildir
echo ./Maildir/ > ~/.qmail(とりあえずローカルのmailboxにもいれる)
・作成されたJitterBugのnew_messageバイナリをホームディレクトリにコピーする。
(当然パーミッションを然るべき設定に変更します)
・~./qmailに |$HOME/new_message bug-trackingの行を追加します。
以上が基本設定なのですね。(超ながったるい...)

JitterBugの設定(設定ファイルによる設定)
・docsのCONFIG.txtをみるべし。

JitterBug-i18nの設定
- 本当は、gettextで日本語化されるはずですが、うまくいきませんでした。
- しょうがないので、poファイルを参照して ソースを日本語メッセージに書き変えた(jitterbug.c)
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=x-euc-jp">タグがでるようにした(jitterbug.c)
- メールインターフェイスで、日本語コードがJISになってしまうようなので、smtp.cの#ifdef I18Nを全部殺しました。

関連サイト

Links to this Page
- バグトラッキングシステム last edited on 3 April 2004 at 12:06 am
- Jitterbug last edited on 7 October 2004 at 5:38 pm
- Webサーバー構築 last edited on 7 August 2005 at 2:19 am
- 影舞 last edited on 7 July 2003 at 12:46 am