News-HOWTO 日本語版 原文 : The Linux News HOWTO 1994/3/26 版 v1.7 Vince Skahan, 著 さとけん (ken@gamba.forus.or.jp) 訳 この文書では Linux で USENET ニュースを設定し、管理および配送する方法 を扱います。ローカルシステムのみで、もしくは他サイトと USENET ニュース を読み書きする予定があれば、この文書を読んで下さい。USENET ニュースを 利用しないなら、これを読んでも意味がないでしょう。 1. 始めに Linux 一般で、また特に SLS 版 Linux で USENET ニュースのソフトウェアを 使用する際によく出る質問や意見に答えるのが、この文書の目的です。 以前 comp.os.linux.announce に投稿されていた旧 UUCP-NEWS-MAIL-FAQ の続 編が、この NEWS-HOWTO や、 UUCP とメールの HOWTO 文書です。 1.1 この文書の最新版 この文書の最新版は定期的に comp.os.linux.announce, comp.answers, news.answers に投稿されます。また sunsite.unc.edu の /pub/Linux/docs/HOWTO ディレクトリをそのままコピーしている FTP サイト からも取得できます。 1.2 感想などは この文書に関するメールでの意見はどんな物にも感心があります。間違いや追 加して欲しい事があれば私にお知らせ下さい。 私は、受け取るメールは全て読みますが、全部に返事を出す訳ではありません。 暇があるか、変更に価値があるか、その日の血圧はどうか :-)、等を考慮の上 で、この文書を希望に沿って改善します。 お怒りは静かに /dev/null に葬られますので、わざわざ送る意味はありませ んよ。 この文書の構成に関する意見は、HOWTO のまとめ役である Matt Welsh 氏 に送って下さい。 1.3 著作権 News-HOWTO は Vince Skahan に著作権があります。 そのままの形であれば、いかなる媒体や電子的であろうと、複製や配布に著者 の許可は必要ありません。翻訳についても、だれが翻訳したかを明記していれ ば、同じように許可は必要ありません。 短い引用として使用するときにも、著者の同意は先でなくてもかまいません。 この文書を大幅に書き換えたり、不完全な形で配布する場合には、原本のコピー か、原本の在処を添付して下さい。 営利目的での再配布も、もちろん許可します。けれども、配布の際には著者に 連絡して下さい。 この情報を必要とするたくさんの人への宣伝の、促進を願っています。けれど も HOWTO 文書の著作権も保持したいと思っていますので、 HOWTO の再配布の 予定などは、連絡して下さい。 HOWTO をより良くするための情報であれば、なんでも教えて下さい。もし質問 があれば、 Linux HOWTO のまとめ役である Matt Welsh に連絡して下さい。 連絡は、電子メールであれば mdw@sunsite.unc.edu に、電話であれば +1 607 256 7372 にお願いします。 1.4 標準の放棄 もちろん、私は本文書の内容についての責任を否認します。本文書に含まれて いる概念、例などを使用するのは、全てあなたの責任で行って下さい。 1.5 情報源 1.5.1 USENET 内容によって以下のようにニュースグループが分かれています。 news.admin.misc : ネットワークニュース管理に関する一般的な話題 news.admin.policy : USENET の利用方針 news.admin.technical : ネットワークニュースの保全について(査読あり) news.software.b : B-News 互換ソフトウェアに関する論議 news.software.nn : nn ニュースリーダに関する論議 news.software.nntp : ネットワークニュース転送プロトコル関連 news.software.readers : ネットワークニュースリーダ関連 news.sysadmin : システム管理者向け news.announce.newusers : 新規ユーザへの説明(査読あり) news.newusers.questions : 新規ユーザのためのQ&A 1.5.2 書籍 これが全てではありませんが、役立つ本を下に紹介します。 ・「Managing UUCP and USENET」(O'Reilly and Associates) 【訳注:日本語訳は「UUCP システム管理」(アスキー)】 USENET に接続する時に使うプログラムやプロトコルを解説し、市販されてい る本の中では最高だと思います。 ・「Unix Communications」(Waite Group) UNIX の通信について、あらゆる事柄がうまく解説されています。 ・「Practical Unix Security」(O'Reilly and Associates) 【訳注:日本語訳は「UNIX セキュリティ」(アスキー)】 一般的な UUCP の安全対策について、良く書かれています。 ・「The Internet Complete Reference」(Osborne) インターネットで利用できるさまざまなサービスや、ニュースで紹介される情 報のための素晴らしい one-stop-shopping のソースや、メール、その他のさ まざまなインターネットの資源について説明されている、良い参考書です。 1.6 質問するべきでない所 Linux で USENET ニュースを動かすのは特別な事ではありません。ですからニュー スに関する一般的な質問は comp.os.linux.* には投稿しないで下さい。 本当に Linux に特化した問題でない限り、上にも書いたニュースグループに 質問して下さい。Linux に特化した質問とは次の様な物です。「SLS 1.03 に 入っている bash1.12 で INN を動かすためのパッチはありますか?」 もう一度繰り返します。 ニュースに関する質問を comp.os.linux に投稿する理由はもう存在しません。 Linux でのニュースシステムに関する質問も news.* で扱っています。 あなたが comp.os.linux.* に Linux に特化しない一般的な質問を投稿したな ら、答えは得られないでしょう。 USENET ニュースのエキスパートは上に書い ているニュースグループしか見ていないでしょうし、大概 Linux は動かして いません。 comp.os.linux.* に Linux に特化しない一般的な質問を投稿しても、あなた の質問の答えを得るために、しばしばあなたや他の人の時間を浪費するだけで す。 2. 必要なハードウェア Linux の USENET ニュースでは、特殊なハードウェアは必要ありません。利用 するソフトウェア、スレッドデータベース、およびニュース記事を保持するこ とができるディスク領域(最低でも10M程度)が必要なだけです。 3. USENET ニュースソフトウェアの取得 この文書で扱っている全てのソフトウェアは、インターネットの大抵の FTP サイトから入手できます。 まずは ftp.uu.net の /news を見るのがいいでしょう。 newspak-2.1.tar.z に入っている設定ファイルや解説文には、各処の自由に使 えるソースファイルから UUCP、ニュース、メールなどのソフトウェアを構築 し、 Linux で動かすための情報があります。これは大抵 sunsite.unc.edu の /pub/Linux/system/Mail ディレクトリにあります。 4. ニュース転送ソフトウェア 最近の *nix 用ニュース転送ソフトウェアには、Cnews と INN の2つがあり ます。古い Bnews は、今後バージョンアップもサポートもされないことが作 成者から公式に宣言されました。 ニュース転送ソフトウェアは、記事の投稿を受け付け、配送し、ニュースリー ダで読めるようにするソフトのことです。 UUCP の Permissions ファイルに絶対パスで rnews を記述し、ニュースリー ダから inews と mail が利用できるように設定すれば、何処に置いてもかま いません。 重要:Cnews と INN の混用は厄介なだけです。どちらか一つだけを使いましょ う。 Cnews と NNTP の Reference Release は始めから相性よく作られていま すから、両方インストールしても問題ありません。 4.1 Cnews Performance Release Cnews は現在標準的に使用されているニュースソフトウェアです。 1988 年に 公開され、改良が続けられています。 Cnews の主な利点は、その完成度にあります。文字通り世界中の幾千のシステ ムで動作していますので、知られている全ての *nix マシンで動作するでしょ う。 欠点は、モデム経由での UUCP 接続しか考えられていないために、リアルタイ ムにインターネットで配送し読むためには NNTP ソフトウェアを追加しなけれ ばならないことでしょう。 さらに各種ニュースリーダ用の外部スレッドパッケージが必要です。しかし現 在でも、少しは役に立つ NOV パッケージへの接続が可能ですし、もうすぐ公 開される Cnews cleanup release では正式に対応するという話です。 いずれにせよ、安定してる、文書が豊富、どんな質問にも答えてくれる経験豊 富な管理者が沢山いる、等の理由から、 USENET の管理を始める人はまず Cnews を動かすのが良いでしょう。 sunsite にある newspak-2.1.tar.z には、Linux で Cnews を動かすための設 定ファイルや、bash1.12 で doexplode をメイクする際に発生する問題 (Linux のアーカイブサイトに置かれている bash1.13 を使えば発生しません が ) を回避するためのパッチが含まれています。 4.1.1 Cnews のインストール ドキュメントを読めば、 Cnews Performance Release はまったく問題なくイ ンストールできます。 Cnews Performance Release のインストールはマニュ アルを読んでください。ソースファイルを入手し、展開して、マニュアルの手 順に従うだけです。 newspak に含まれている build.def は最初に build を実行し、単に /usr/include のファイルから答えを調べて、生成されたものです。 コンパイルは何回か止まるでしょう。いずれも gcc で問題になる atoi() と atol() マクロを、 doit.bin からコメントアウトしなければなりません。 また、 bash 1.12 のバグを回避するように doexplode に次のパッチが必要で す。このパッチを使わなければ下流サイトには何も送られません。 ( Steve Robbins 氏 から ) if [ ! -f $f ] ; then continue; fi # この行を追加 # case "$f" in # この行をコメントアウト # "out.master/[0-9]*") break ; # この行をコメントアウト # esac # この行をコメントアウト Cnews に詳しい Henry Spencer 氏によると、 doexplode と bash で現在問題 になっているコードについては、新しいリリースでの修正項目になっているそ うです。 Linux 用の bash 1.13 β版でもこのパッチが必要かどうかは現時点では不明 です。私は、新しい bash とライブラリでパッチ無しに切替えましたが、落ち た事はありません。 ( 何が良かったのかは分かりませんが :-) 4.1.2 Cnews の設定 少なくとも、/usr/local/lib/news にある以下のファイルは編集しなければな りません。 active : active ファイル batchparms : バッチパラメータ explist : 記事の時効の設定 mailname : メールでリプライするためのヘッダ内の名前 mailpaths : 査読のあるニュースグループへの投稿用アドレス organization : あなたの組織名 sys : ニュースグループの取捨を選択 whoami : Path: 行に設定するホスト名 4.1.3 Cnews サイトの管理 まず、専用のユーティリティがあるファイルを直接エディタなどでいじるのは 止めた方が良いでしょう。特にニュースの配送と active ファイルの設定では、 それぞれ addfeed や addgroup などのコマンドを使って下さい。迷った時に は、ソースに含まれている文書を何度も読んで下さい。 その他は全部 cron から起動します。私の crontab の news に関する部分は 下のようになっています。 # 他システムから送られてきた圧縮済みデータの取得 20 * * * * /usenet/sw/news/bin/input/newsrun # 送信用のファイルをまとめる 0 * * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite # 時効記事の削除 59 0 * * * /usenet/sw/news/bin/expire/doexpire # ニュースを監視し、必要なら報告 10 5 * * * /usenet/sw/news/bin/newsdaily 00 5 * * * /usenet/sw/new/bin/newswatch # 受信ニュースデータの処理の停止( 6:30am - 4:00pm ) 30 6 * * * /usenet/sw/news/bin/input/newsrunning off 00 16 * * * /usenet/sw/news/bin/input/newsrunning on 4.2 InterNetNews (INN) INN は比較的新しく、完成度が高まるにつれ人気が出てきました。主な利点は、 スピードと nntp パッケージを統合して含んでいることです。主な欠点は、新 しいことと、標準的な *nix でもインストールや動作が必ずしもすんなりとは 行かない事でしょう。また、メモリ使用量とスピードの兼ね合いになりますが、 常に動いているデーモン(innd)と、オーバチャネルになる可能性を秘めたス レッド用デーモンを用いて動作するのも欠点でしょう。 新しい USENET 管理者は、B-news か Cnews のどちらかを経験するまでは、 INN は止めた方がいいでしょう。Linux 上でも高速で信頼性がありますが、ニュー ス管理の初心者用の文書はありません。(ただし、実際には、設定がわかれば 後は比較的簡単です。) INN はパーミッションにとても厳重ですから、それらを修正しないで下さい。 INN はまた、同時に動かされている TCP/IP の品質にとても厳格です。現在の Linux では必ずしも当てはまりませんが、 Linux の有名なアーカイブサイト から Linux 用の INN を入手される事をお勧めします。 4.2.1 INN のインストール ( Arjan de Vet 氏 <ユーザネーム> <パスワード> ニュースサーバ(上記の SERVER_FILE の中のもの)が shoop.vpizza.com で、 そのマシンで投稿するためにはユーザネームが news、パスワードが floof の ユーザの権限が必要だとしましょう。この場合、稿するために必要な権限を持っ ているのであれば、 /usr/local/lib/news/nntppass )に、下の行が必要です。 shoop.vpizza.com news floof 6) ファイルの安全性を高めます。inews プログラムはユーザ usenet で動か して、ニュースのディレクトリと nntppass ファイルのオーナを usenet にし ます。 chown usenet /usr/local/lib/news chmod 755 /usr/local/lib/news chown usenet /usr/local/lib/news/nntppass chmod 600 /usr/local/lib/news/nntppass ( nntppass ファイルに書かれている)パスワードは暗号化されていないので、 (ユーザ usenet と root 以外には)読めなくします。 7) nntp.1.5.11 のソースディレクトリに戻って、 make client を行ないます。 ここでは、 inews の NNTP バージョンを構築します。これは NNTP クライア ントが使う唯一のファイルです。 私が inew を構築した時は、 uname.c にある uname() 関数が自分自身を永久 に呼び続けるというライブラリのバグがありました。これはもう修正されたは ずです。inews がハングしたように見えたり、システムの動きが相当遅くなっ たりしたら、 uname.c にある uname() を例えば my_uname() に変更し、 ( inews.c の中で)代わりに my_uname() を呼ぶように変更して下さい。こ の問題が発生したら、メールで知らせて下さい。 ( これは私 (VDS) ではなく :-) Matt 氏にメールして下さい。 ) 8) inews のプログラムをインストールするために、 make install_client を 行ないます。これにより、 /usr/local/lib/news/inews から /usr/local/bin/inews へのリンクも作られます。 これで、(手で)投稿することが出来るようになります。下のように、やって みて下さい。 $ inews -h << EOF Newsgroups: misc.test From: me@foo.bar.com Subject: Testing Reply-To: my-real-address@wherever.edu This is a test. EOF 入力すると、 inews が記事を投稿し、上の Reply-To の行にあるアドレスに、 misc.test のテストレスポンダから返事が送られてきます。どうか c.o.l.* :) のような実際のグループで、投稿のテストはしないで下さい。 7.10 nntp ベースのニュースリーダ/ポスタである rrn を構築するにはどう すればいいですか? ( mdw@sunsite.unc.edu (Matt Welsh 氏) ) 1. rn のソースディレクトリに移って、 ./Configure を実行します。ほとん ど全ての質問でデフォルトを選択します。rn が利用できるように、 /lib の 中に cpp (通常は /usr/lib/gcc-lib/i386-linux/2.3.3 の中)へのリンクが あることを確認して下さい。 - NeXT もしくは USG システムだといわれても、落ち着いて回答を続けて下さ い。 - Do you expect to run these scripts and binaries on multiple machines? には y と答えます。 - ドメインネームには、例えばシステムが foo.bar.com であれば bar.com と 答えます。(これはドメインであって、ホストネームではありません) - ニュース管理のユーザネームには usenet と答えます。 - Where is your news library? には、上で書かれている、NNTP ファイルが 置かれているディレクトリ(私は /usr/local/lib/news )を答えます。 - Man page source は /usr/man/man1 です。 - Does your /etc/passwd file keep full names in Berkeley/V7 format? には y と答えます。 - コンパイラの名前には gcc と答えます。 - Do you want to build the NNTP version of rn (rrn)? には y と答えます。 - ニュースサーバのファイル名には、上で inews を構築する時に使用したも の(私は /usr/lcoal/lib/news/server )と同じものを答えます。 まだ makedepend を実行しないで下さい。次のステップに進みましょう。 2) config.h を編集します。 まだ直っていなければ、 #define ROOTID の行を #define ROOTID 0 に変更して下さい。 3) rrn-4.4.pl3 には、 Linux には存在しない SIGEMT に関して小さなバグが あります。rn はプロセスがまだ動いているかチェックするために SIGEMT を 使用しています。POSIX.1 では代わりにシグナル 0 を送ってやるだけです。 init.c の 243 行目が if (kill(processnum, SIGEMT)) { となっていれば if (kill(processnum, 0)) { に変更して下さい。 #ifdef で変えればいいと思われるでしょうが、 final.c の中の sigignore() で問題が発生しますので、 SIGEMT を 0 に定義してはいけません。 4) makedepend > makedepend.out を行ないます。 5) make を行ないます。これで rn のコンパイルが完了します。 6) make install を行ないます。 これでできあがりです。 rn は(いくつかのニュースリーダと同じように)ニュー スグループファイルを扱うために大量のメモリを使用することを忘れないで下 さい。 rn を最初に実行する時は、ニュースグループを調査して .newsrc ファ イルを作るために少し遅くなるでしょう。せっかちな人は、他の人が使ってい る .newsrc ファイルをコピーして下さい。