実践編/HTML型掲示板に挑戦(2)

真里:加藤真里 シレ:シレスト=ノイデルファーム

シレ:さて、解凍できましたか?

真里:……うーん、かなり苦労したけど……なんとか……

シレ:はい。それではまずは説明書……といきたいところですが、設定の仕方は説明書には載っていません。そこでまずはconf.cgiを開いてください。

……ただし、開くのにも工夫が必要です。改行コード自動変換機能・EUC文字コード変換機能のついたエディタが必要です。

わからない人はWindowsなら「K2Editor」、Macintoshなら「ミミカキエディット」がこれにあたるはずです。どちらもフリーウェアかつPerlをいじるのに十分な機能を持っていると思います。...で。開けましたか?

真里:……hわ……なにこれ……

シレ:設定用のデータがつまったファイルですから。ややこしいのはどうしようもないです。最低限必要な設定のみリストアップしますので、確認して下さい。

$basedir = "http://hogehoge.com/~unyo/cgi-bin/nbbs";
掲示板を設置したURLを " " の中に全部きっちり書いてください。
同じようなもの($basedir)が2つありますが下のほうが有効です。

#$suexec = 1;
これは、suexec(下の「一口メモ」参照)を実装しているサーバの場合に$suexec = 1;(#をとる)としてください。通常はこれは実装されていないため、さわってはいけない場合が多いです。

$pass = 'aBcDeFgHiJkLmN';
管理用パスワード(エンコード済み)を ' ' の中に書いて下さい。
これも例によって下の方が有効です。
パスワードのエンコードの仕方は少し複雑です。設置するサーバがFreeBSDの場合とそうでない場合に分かれますので、何らかの方法で調べてみてください。
FreeBSDの場合はこちら
そうでない場合はこちら

$title = '掲示板';
掲示板のタイトルです。そのままだと良くないので書き換えましょう。

真里:でもさ……やっぱりさ、デザインとかいじりたいんだけど。ほら、せっかく自分の掲示板なんだから、自分のページに合ったものにしたいじゃない。

シレ:本当はこれ以外は最初はいじらないほうが無難ですが、実はこのNecoBBSはデザイン変更も比較的やりやすくなっています。設定部分のさらに下にDESIGN:と書いてありますが、これ以降の $xxxxx =<<"EOF" という部分から EOF までは割と柔軟にいじることができます。詳しくはNecoBBS StandAloneの説明書を参考にしてください。

真里:……これってさ、ふつうのHTMLだよね、中身。……もしかしたらあたいにもいじれるかも……(ここでおもむろにタグ辞典を引っ張り出す)

シレ:ただし注意点があります。
<!xxxxx>という部分は絶対に残しておいて下さい(例えば<!url>や<!name>など)。この部分には投稿者名や書き込み内容が入ります。ただし位置を変えるだけならOKです。
……また、HTMLを正しく理解しておいてください。……ミスをしても表示が崩れるという程度しか被害はありませんが。

一口メモ:suexecって?

説明書にもあるsuexecですが、これはいったい何のことなのでしょうか。一口で言ってしまうと「CGIを所有者権限で実行する」ものです……といっても、わかりませんよね。

いつかパーミッションの設定の話をしました。あそこでは、Owner/Group/Everyoneのそれぞれを設定していましたが……ふつうはCGIは「所有者とは違う権限」、つまり「CGIを管理している人とは別の人がそのソフトを動かしている扱いになる」わけです。

そのためにEveryone(その他の人)が実行できるように設定したり、掲示板のログに至ってはEveryoneが書き込み可能な設定にしなければならなかったわけですが…もちろんそのログは「誰でも書き込み可能」=「簡単に中のデータを潰せる」わけですから非常に危ないです。

そういった理由からも、やはりCGIは「所有者がそのソフトを動かしている」扱いにしたいわけです(もしこの場合ならログファイルはパーミッション600=所有者のみ読み書き可能、で事足りるわけで、他の人は中身を見ることすらできません)これを実現する機能がsuexecというわけです。

ただし、この仕組みにも危険はあります。CGIにもしセキュリティの問題があったらどうなるでしょう?……だいたい想像できますね。所有者=正規ユーザーの権限でいじり放題というわけです(かなりコワい)。というわけでできるだけ信頼性のあるCGIを選んでくださいね(笑)

UNIX系への導入のしかたはこちら……

 

[次回に続く……]

 

←PREV | NEXT→

Return : Perl Top