CONTROL.CTL(5)

名前
control.ctl - コントロールメッセージ処理設定

機能説明
/var/news/etc/control.ctl はコントロールメッセージを受けた時にどのような処理をするかを決定するために使用します。 このファイルはすべてのコントロールメッセージ用のスクリプトから呼ばれる parsecontrol スクリプトが読み込みます。 (コントロールメッセージ用のスクリプトがどのように起動されるかは innd(8) を参照してください。)

このファイルは一連の行から構成されていて、空行や ``#'' で始まるコメントは無視されます。 すべてのその他の行はコロンで区切られた四つのフィールドから構成されます。
    message:from:newsgroups:action

第一フィールドはその行が有効となるコントロールメッセージの種類です。 これはコントロールメッセージの名前かすべてのコントロールメッセージで有効な ``all'' のいずれかになります。

第二フィールドはコントロールメッセージをポストした人の E-mail アドレスに一致するようなシェル形式のパターンになります。 (ポストした人のアドレスは比較する前に小文字に変換されます。) 一致させる方法はシェルの case 文を使用します。 詳細は sh (1) を参照してください。

コントロールメッセージが ``newgroup'' や ``rmgroup'' の場合、 第三フィールドは作成あるいは削除するニュースグループに一致するシェル形式のパターンになります。 コントロールメッセージがこれら以外の場合は、このフィールドは無視されます。

第四フィールドはコントロールメッセージによりその行が選択された場合の処理をあらわします。 これは次のような処理のうちのいずれかです。

doit
    コントロールメッセージで要求された処理を行います。 ほとんどの場合、コントロールメッセージ用のスクリプトは usenet 宛にメールも送られるようになっています。

doifarg
    コントロールメッセージに引数がある場合、``doit'' の処理と同じになります。 引数が無ければ、``mail'' の処理と同じになります。 この処理は ``sendsys'' で使用され、``sendsys mysite'' のようなコントロールメッセージをポストすることによりそれをポストしたサイトが送った先のサイトの newsfeeds(5) の自分自身へのエントリの内容を要求することができます。 逆に ``sendsys bombs'' のような場合、 newsfeeds の内容すべてを偽造された Reply-To アドレスへ送るようになりますが、 ``doifarg'' を使用することによりこのようなコントロールメッセージは自動的には処理されなくなります。

doit=file
    処理を行いますが、 file で指定したファイルにそのログを出力します。 file が ``mail'' となっていればログはメールで送られます。 空の文字列は /dev/null に相当します。 スラッシュで始まるパス名はログとして使用するファイル名の絶対パスとみなします。 それ以外のパス名は /var/log/news/file.log に出力されます。 ログは writelog により出力されます( newslog(8) を参照してください。

drop
    何も処理しません。 メッセージは無視されます。

log 標準エラー出力に一行のログが出力されます。 innd は通常、 /var/log/news/errlog というファイルに出力します。

log=file
    ログの出力は file で指定したログファイルにされ、log で説明した出力形式で出力されます。

mail
    ニュース管理者にメールを送ります。

verify-pgp_userid
    PGP による認証を行い、認証が成功すれば、要求された処理を行います。 PGP の認証に失敗した場合はメッセージは無視され、 /var/log/news/badpgp.log というファイルに出力します。

verify-pgp_userid=logfile
    PGP による認証を行い、認証が成功すれば、要求された処理を行いますが、 logfile で指定したファイルにそのログを出力します。 PGP の認証に失敗した場合はメッセージは無視され、 /var/log/news/badpgp.log というファイルに出力します。

各行の比較は順番に行われ、最後に一致したものが使用されます。 例えば、次のような三行の場合を想定します(バックスラッシュで行を続けるようにはしないでください。 これは読みやすくするために使用しただけで、本来は一行となるようにしてください)。
    newgroup:*:*:drop
    newgroup:group-admin@isc.org:comp.*|humanities.*|misc.*|news.*|\
    rec.*|sci.*|soc.*|talk.*:verify-news.announce.newgroups
    newgroup:kre@munnari.oz.au:aus.*:mail
ISC の ``group-admin'' からの newgroup のコントロールメッセージは USENET 階層のものであり、PGP による認証に成功すれば受け入れます。 ``aus.foo'' というニュースグループを作成する newgroup のコントロールメッセージが ``kre'' がポストしていれば、メールを送ります。 それ以外の newgroup のコントロールメッセージは無視されます。

履歴
InterNetNews 用に Rich $alz <rsalz@uunet.uu.net> により記述されました。

関連項目
innd(8)、 newsfeeds(5)、 scanlogs(8)