ホーム > HTMLに役立つヒント
> マニュアルに書いてないきのぼず > きのぼずを保守する
●発言者を一覧表にする R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
telnetが必要です。該当する掲示板ディレクトリに移動してください。次のコマンドを実行します。
perl -n -e '@d = split( /\t/ ); print join( "\t", @d[ 7, 8, 9 ]), "\n";' < kb.db | sort | uniq > users.txt
これはなひさんに教えてもらいました。これを実行するとusers.txtというファイルが一瞬でできます。タブ区切りでお名前やメールアドレスなどの情報が一覧表になっていますので、エクセルなどに読み込ませるとあっという間に発言者一覧表の出来上がり(^_^) 発言者の数を知りたいと思った時とか、緊急のお知らせを参加者に一斉メールしたいときなど、ものすごく重宝します。なひさんありがとうございます<(_ _)>
●Cookie異常のトラブル R6.x ▲このページのトップへ ▲▲目次ページへ
R6.8に変わるときに、発言・コメント時のCookieの手法がより確実なものに書き換えられている(えーと、Cookieというのは発言するときに名前とかURLとか入力しますが、これをブラウザに覚えさせる情報のことです)。このため、それまでR6.7以前のバージョンを使っていて、R6.8以降のバージョンに変えた場合、最初の1回だけ名前やURLなどのCookie部分を入れ直してやらなくてはならない。
ところが、僕のサーバー環境では何度入れ直しても名前からURL、メールアドレスまで全部が名前の欄に表示されるという怪現象が起きた。R6.8に切り替えたときには1度だけこの現象が起こり、入力し直せば2度目からは正常に動作するはずなのである。なひさんにも相談したのだが、原因は不明ということである。
この現象が確認できたのはMACのネスケ4.0、4.5(4.7については未確認)だけで、MAC環境ではIEなら正常に動作した。つまりサーバー側だけの問題でもない。原因がつかめなかったのである。
で、解決方法ですが、この現象が起きたらユーザーに頼んで一度該当するクッキーを削除してもらうしかない。削除の方法は大きく分けて三つある。
1.削除ページを作る:Cookie削除用のページを作り、JAVAかcgiで削除する。削除ページの例はこちらをご覧ください。
2.専用ツール:MAC用のクーキー削除ツールはワタヤ(Junichi Wataya)さん制作の「CookieSelector(フリーソフト)」などがある。これで該当するCookieを削除すれば、後は正常に動作する。
3.手動削除:ツールがなくても、「システムフォルダ→初期設定→Netscape Users→自分用のフォルダ→MagicCookie」にCookieは記録されているので、これをJeditやYooEditなどのテキストエディタで開いて(ドラッグ&ドロップできないときはエディタの「編集」メニューからオプションキーを押しながら「開く」を選択する)該当のCookie行を削除すれば大丈夫。
なお、このファイルはテキストファイルではないため、SimpleTextでは開けません。
●削除した記事を復活する R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
削除されたといっても、機能特別版cgi(管理者用のcgiですね。作り方はきのぼずマニュアルにあります)で削除した場合、実はkb.dbという発言データベースファイルの発言番号の先頭に「#
」をつけてコメントアウトしてあるだけです。
従って、大きな手順としては1.kb.dbをダウンロードする、2.kb.dbの「#」を外す、3.修正したkb.dbをアップロードすると、これだけです。ところが、kb.dbはパーミッションの変更が一筋縄ではいかないのでちょっとしたトリックを使います。
FTPで
・ 該当の掲示板ディレクトリに行く
・kb.dbをダウンロードして手元に置く。
・手元のkb.dbを開いて、元に戻したい発言番号の先頭にある「# 」を削除して保存する。
telnetで
・掲示板のkb.dbの名前をfoo(他の名前でもいいです)に変える mv kb.db
foo
(同じことはFTPでも可能です。FTPソフトによりますが)
FTPで
・手元のkb.dbをアップロードする。
telnetで
・fooを削除する rm foo
(同じことはFTPでも可能です。FTPソフトによりますが)
これでめでたく削除した記事が復活しているはずです。念のため「kb.db」のパーミッションを確認しておくといいかも。もちろん、記事そのものが削除されていれば復活できませんので注意。
●管理用ディレクトリ(特別機能版きのぼずcgi)にパスワード認証をかける R6.x ▲このページのトップへ ▲▲目次ページへ
特別機能版cgiを人にいじられたくないですよね。そこで、このディレクトリにパスワード認証をかけましょう。
ここではサーバーの機能を使い、IDとパスワードで認証をかける方法を書きます。
アクセス制限をかけるには二つの作業がいります。
1.「.htaccess」というファイルをアクセス制限したい対象ディレクトリに作る。
このファイルはディレクトリごとに作ることができ、さまざまな制限をかけられます(つまりディレクトリごとにアクセス制限をかけたりかけなかったりできるわけです)。そのディレクトリ以下のファイル全部がこの制限の元におかれます。
「.htaccess」ファイルの内容は以下のとおり。カスタマイズの必要がなければ以下の赤い部分をそのままコピーしてファイルを作るといいでしょう。ローカルでファイルを作って、FTPでアップロードするのが簡単です。ただし、FTPソフトによっては「.」で始まるファイルのアップロードを許さないものがありますので、アップ後にファイル名をなおしてください。
AuthUserFile /ディレクトリのフルパス/access.conf
AuthGroupFile /dev/null
AuthName IDとパスワードを入力してください
AuthType Basic
require valid-user
AuthUserFileはディレクトリのフルパスを入れないと正常に動作しません。これはたとえば「/home/name/html/kb/priv/」のように記述します。
実はその後ろの「access.conf」は次の認証ファイルのファイル名で、これはほんとはどんな名前でもいいのでした。好きなファイル名にしてください。
「AuthName IDとパスワードを入力してください」の「IDとパスワードを入力してください」という部分は、パスワード入力画面が表示されるときに表示される部分です。必要があれば書き換えてください。
最後の「require valid-user」が認証をかける命令です。ちなみにvalidとは合法的とかいう意味です。
2.認証ファイルを作る。これは必ずtelnetが必要です。
telnetで対象ディレクトリに行く。
htpasswd -c access.conf ◆好きなID を打ち込むとパスワードを聞かれるので答える。すると暗号化されたファイルが該当ディレクトリにできあがる。
「access.conf」は前述のようにどんなファイル名でもいいので必要に応じて書き換えてください。
作業は以上で終わりです。
3.IDとパスを追加する場合は、2.と同様telnetして
htpasswd access.conf ◆新ID とやる。
なお、Kan-chanさんがホームページ実験室でFTPだけで同様のことができる方法を紹介しています。
R7.0以降は特別機能版の必要はなくなりました。管理者としてログインすれば特別機能が使えます。
●不心得者のアクセスしてくるホストを知る R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
先日私も経験しましたが、ネットにはいやなヤツがいます。しょーもない書き込みをしたヤツのホスト名を知るには「kb.ph」で設定するのが簡単です。
## ○システム機能の設定
#
# 実行ログのフォーマットを指定してください.
# ログはlogディレクトリに書き出されます.
# 1: 取る(HTMLフォーマット)
# 2: 取る(プレインテキストフォーマット)
# 0: 取らない(推奨しません)
$SYS_LOG = 1;
# 上でログを取るように設定した場合,以下も設定してください.
# ログレベルを指定してください.
# 2: エラーが生じた場合のみ(log/error_logに書き出されます)
# 1: 通常時もログを取る(log/access_logに書き出されます)
# 0: 詳細なログを取る(デバッグ時のみ利用してください)
$SYS_LOGLEVEL = 1;
# アクセス元ホスト名を,記事DBおよび実行ログに残しますか?
# 0: 残さない.
# 1: 残す.
$SYS_LOGHOST = 1;
# 上で「1: 残す」に設定した場合,以下も設定してください.
# 記事のヘッダにマシン名を表示しますか?
# 0: 表示しない
# 1: 表示する
$SYS_SHOWHOST = 0;
大事なのは赤いところです。この設定だとkb.dbとlog/access_logに発言者のアクセスしてきたホスト名が残ります。
僕の場合、ホスト名を残さないようにしていたので、問題が起こったときにログ追跡ができませんでした。これも管理者としては問題意識が低かったと思います。ネット犯罪は意外に身近にあります。
こうして取得したホスト名やIPアドレスからアクセスホストの情報を知るwhoisツールとしてはWhatRoute(日本語サイトはこっち)とかWhois検索とか(ともにMAC用。Windows用も探せばあるはず)あります。jpドメインならhttp://www.nic.ad.jp/cgi-bin/whois_gateで調べることも可能です。
●不心得者を追い出す R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
「.htaccess」ファイルをkbディレクトリにおくことで特定のホストからのアクセスを拒否することができます。ただしこの方法、排除するのはホストごとなので、無実の人もホストごと排除することになります。また、インターネットカフェ(死語?)からアクセスされれば役に立ちません。それがイヤならきのぼず7*にしましょう。7*は登録制ですので、いやなヤツが入ってくる心配がありません。
「.htaccess」ファイルの中身
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthType Basic
<Limit get post put> ※kbディレクトリに上のパスワード制限をしているならこの行から下だけ追加する
order allow,deny
allow from all
deny from ホスト名
</Limit>
これより詳しい説明がほしい場合は http://www.rescue.ne.jp/cgi-rescue/cgi?deny を参照してください(このページへの直接リンクが禁止されているのでURLをコピー&ペーストしてください)。丁寧に解説がされています。トップページはwebの裏技です。
●アクセスしているホスト名を表示させる R6.x ▲このページのトップへ ▲▲目次ページへ
R6*シリーズでは頭に「[ タイトル一覧(リプライ順) // 最新メッセージID: 1085 // 時刻: 1999/11/29(13:27)]」なんて風に表示されますが、ここに今アクセスしているホスト名を表示する方法です。
「ちゃんとログとってますよ」という意味で表示させるわけです。いわゆる「抑止力」ですが、かえって刺激する場合もありますので運用は慎重にお願いします。
R7*シリーズは登録制が前提ですからこの心配はないでしょう。
この方法は綾之介さんに伝授いただき、なひさんに改良法を教えていただきました。
kb.cgiの1500行あたりを見てください。次のように赤い行を追加します。
<p>[
__EOF__
$msg .= "$REMOTE_INFO //\n"; $msg .= "$Message
// \n";
$msg .= "最新${H_MESG}ID: " . $DB_ID[$#DB_ID] . "
// \n" if @DB_ID;
$msg .= "時刻: " . &GetDateTimeFormatFromUtc( $^T
); $msg .= <<__EOF__;
]</p>
ただし、REMOTE_INFOはサーバのユーザ認証を使っている場合 (「管理用ディレクトリ(特別機能版きのぼずcgi)にパスワード認証をかける」をやっている場合)、そのユーザ名も表示されます。 例えば「host.ne.jp-penguin-19 // 最新メッセージ...」なんてことになります。ま、本人の情報なんでいいんですけどね。
●掲示板あらし R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
この手の嫌がらせは技術のあるヤツが相手だとイタチゴッコになります。そんな時は、ネット犯罪やその対策に関して私のホームページにリンクがあります。ご参考にどうぞ。
他人の名前をかたるなど悪質な場合は警察にも相談してみましょう(他の発言者の名前をかたって発言するのは立派に私文書偽造・行使です)。
私の掲示板を舞台に、特定の参加者になりすまして発言・その人に対する中傷などが書き込まれる事件があり、警察に相談に行きましたが、被害者自身(この場合、なりすまされた人・中傷された人)から被害届を提出しなくてはならず、掲示板が被る被害は「風評被害」に近いもので、定量化が難しいため立件自体が無理ではないかとのことでした。
このような事態を避けたいならば、登録制にする(きのぼずR7*シリーズ)ことをお勧めします。
なお、ネット犯罪に対する心得・手口・予防法などを具体的に知りたい場合はweb110番が心強い味方です。
ちなみに「団結の強い掲示板はつまらないから出ていく」というのは本当みたいです。
●バトル心得の条 R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
よくバトル発言を削除してバトルがなかったかのように装う掲示板があります。これは、神奈川県警が「いえ、あの警部補は覚醒剤ではなく不倫が原因で諭旨免職にしました」とか、高速増殖炉もんじゅが事故直後のビデオを「そうしたものはありません」と証拠隠滅をはかったりとか、そーゆーことと同じベクトルの上にあると思います。バトルは存分に戦わせて、その発言を残しましょう。人の振りみて我が振り直す(ただし、当事者から恥ずかしいから消しててほしいなどの要請があった場合この限りにあらず。その場合も客観的な経過だけは書き残しましょう。バトルの原因は貴重な意見の食い違いにあったはずです。意見の大意だけは残すと、そーゆー考え方もあるのかーと参加者の知識になりますし、バトルも無駄になりません)。
間違いを認めないと前進もないですし、参加者はだいたいが良心的です。一部の不心得者のために受け身になることだけは避けたいと思ってます。
掲示板は人間のコミニュケーションの場です。現実の人間社会と同じように、誤解や勘違いなどでたまには怒ったりします。それは人間である以上、むしろあって当然のことだと思います。
そうした場合、バトっている人の怒り方が一番の問題で、理不尽な怒り方になりがちです。論旨と関係のない、中傷に近いような個人的なののしりあいは「それはこの件と関係がない」とキッパリというのもいいと思いますし(かなり効果あり。体験済み)、両者に時間をおくようにメールで促したりする(まだやったことなし)のも手です。どちらかの肩を持つよりも、できるだけ公平に判断して、両者が納得する/面子が立つ/引っ込みがつきやすいようにするのがいいみたいです。
●オフ会 R6.x/R7.x ▲このページのトップへ ▲▲目次ページへ
これだけは苦手だ! 幹事役というのが、ともかくダメだ。お店を予約したり、待ち合わせ場所を決めたりするのはいいですが、実際に人を引っ張っていって、仲良くお酒を飲んで、時には二次会までつれていって…。
できない! オレにはそういうことはできないんだぁぁぁぁ! だいたい最初に酔っぱらうし、酔ったときに人のことまで気にしてられるかってんだ、バーロー。おい、この酒、薄いんじゃねーか? ちっとも酔わねーぞ! その証拠にオレはしらふだ!!
少人数で話が通る範囲内で押さえるか、逆に思い切って大人数にしてテキトーに個別に話が弾むようにしむけるとか。後は幹事役を積極的に受け入れてくれる宴会部長タイプを確保するとか。
一番やっかいなのは参加者の予定を合わせる段階でしょうね。人数が多いほど調整に苦労する。お店は学生ノリのところが楽でいいです。参加人数にも融通が利くし。
ところでここ、うちの掲示板の参加者は見てないだろーな(^^;;;; 捨て身だな、ほとんど。