CML-4.2-Release 用 qmail パッチ nobody_alias

  CML では nobody 宛のメイルを自動的に破棄させるように alias を設定しなければ
なりません。qmail において、この設定を施す方法は sendmail と異なります。この
ファイルでは、qmail 環境下での nobody alias の作成方法と、技術的な情報につい
て言及します。


I. nobody 宛のメイルを破棄させる方法

 [1] alias-root.pl を使う
       このパッチ・キットには、自動で qmail 用の alias を作成するための 
     alias-root.pl というスクリプトが付属しています。alias-root.pl は、実行さ
     れる度に nobody の alias が正しく設定されているかどうか精査します。正し
     い設定がなされていない場合には：
           Set to dump a mail for 'nobody' into null? [y/n]: 
     と聞いてきますので、y と答えてください。これで設定は終りです。細かい技術
     的な情報を必要としない場合は、以下を読む必要はありません。

 [2] マニュアルで設定する
       スクリプトに頼らずに、マニュアルで alias を作成する場合は、ルート権限
     で以下の手順を実行してください。
  (1) qmail の alias ディレクトリ（デフォルトは /var/qmail/alias）へ移動して
      ください。
           cd /var/qmail/alias
  (2) 以下のコマンドを実行し、'.qmail-nobody' ファイルを作成します。
           echo '#' > .qmail-nobody
      sendmail ユーザが想定しがちな echo /dev/null > .qmail-nobody という命
      令は、qmail においては正しいものではないことに注意してください。理由は
      第III章で説明します。
           cat .qmail-nobody
      として、ファイルに # の一行だけが登録されていることを確認してください。
      これで設定は終りです。細かい技術的な情報を必要としない場合は、以下を読
      む必要はありません。


II. nobody 宛のメイルを破棄させなければならない理由

  CML 本体のドキュメント make-ML の中に以下のような記述があります：

> また、/etc/aliases の中に、
> 
>         nobody: /dev/null
> 
> というエントリがなければ必ず追加して下さい。cmas の自動で配送モードを変更す
> る機能を用いる場合にこのエントリがないと、自動機能が正しく動かないばかりで
> なく、沢山のエラーメールを発生させる可能性がありますので、充分注意して下さ
> い。

  理由については、以上の説明で十分であると思われますが、qmail 環境下では、以
下の点について、十分に注意してください。
  (1) /etc/aliases を qmail の alias に自動変換する fastforward パッケージに
      よる newaliases コマンド（/var/qmail/bin/newaliases）では、
           nobody: /dev/null
      というエントリを正しく変換しません。
  (2) qmail の alias ファイルは、そもそも /dev/null を設定されることを好みま
      せん。理由は、第III章で解説します。


III. qmail の alias ファイルで /dev/null を用いてはならない理由

 [1] 特定アドレス宛のメイルを破棄したい場合は、.qmail-'alias' にコメント行
    （#）のみを記述することで、メイルは破棄されます。これが qmail の仕様とし
     て最も正しい方法です。詳しくは qmail 付属のドキュメントを参照してくださ
     い。
 [2] qmail 環境下で alias ファイルに /dev/null を記述してメイルを破棄しようと
     試みることは正しくありません。なぜなら、qmail は「グループ」や「その他の
     ユーザ」に書き込み権が設定されているファイルにメイルを配信することを、セ
     キュリティの観点から望ましい事として考えてはいないからです。そして、
     /dev/null ファイルこそ、「グループ」や「その他のユーザ」に書き込み権が設
     定されているファイルに該当します。
 [3] qmail の alias ファイルに /dev/null を記述した場合、一部の環境では、メイ
     ルの破棄が正常に行なわれる場合もあるようですが、ほどんどの環境では、ログ
     に：
           deferral: Unable_to_write_/dev/null:_invalid_argument._(#4.3.0)/
     と記載されて、破棄が正常に行なわれません。このようなエラーメッセージが表
     示されている場合は、不要な再配送を繰り返し、リソースを浪費していることに
     なりますので早急な修正が必要です。


             OKADA Tetsutaro <tetsuta@ec.kagawa-u.ac.jp> 2001年7月4日
