MAKEMAP(8)

名称
makemap - sendmail用のデータベースマップを作成する

書式
makemap [-N] [-f] [-o] [-r] [-v] maptype mapname

解説
makemap は、 sendmail(8) がキー付きマップを検索する際に用いるデータベースマップを作成します。 これは標準入力から読込みを行い、指定された mapname に出力を行います。

どのようにコンパイルされるかによって、 makemap が maptype の選択に使うことのできるデータベースのフォーマットが異なります。 maptype には、以下のようなものがあります。

dbm DBM フォーマットマップ。 ndbm(3) ライブラリが必要です。

btree
    B-Treeフォーマットマップ。 new Berkeley db(3) ライブラリが必要です。

hash
    ハッシュフォーマットマップ。 db(3) ライブラリが必要です。

すべてのフォーマットで、 makemap は標準入力から空白文字で区切られた 2 つの単語を読み込みます。最初の単語は “キー” で、2 番目の単語がその “値” です。 “値” が “%n” (n は数字) という文字列を含んでいると、sendmail がパラメータ置換を行います。 “%” という文字を含めるには、 “%%” とする必要が あります。空行や “#” から始まる行は無視されます。

フラグ:

-N  文字列の終端記号として、ヌル文字もマップに含めます。 これは、 sendmail.cf の “K” 行における -N フラグと一致していなければなりません。

-f  通常、 “キー” のなかのすべての大文字 (upper case) は、すべて小文字 (lower case) として記録されますが、このフラグを指定することによって、 この動作を行わないように指定できます。これは、 sendmail.cf 中の “K” 行における -f フラグと一致していなければなりません。 “値” は、大文字、小文字のどちらかに統一されることはありません。

-o  すでにあるファイルに追加が行われます。すでに存在するファイルを 引数として指定することができます。

-r  すでに存在しているキーを置き換えます。通常はすでに入力したキーを さらに繰り返して入力しても、 あとから入力されたものはデータベースに含まれません。

-v  処理の内容を詳細に表示します。

このプログラムは、 sendmail.cf を作成する際に、キー付きマップを使用する場合に役に立ちます。

NetBSD で使われている sendmail(8) は V8 ですから、 sendmail.cf を作成するには、 cf (日本では CF と表記されるバージョンがある(CF-3.3W8.tar.gz)) を使います。

  使用例
/usr/src/usr.sbin/sendmail/cf/cf に .mc (マスターコンフィギュレーションファイル) があります。このディレクトリで、 各自のマシンにあわせた設定を yourhost.mc に行い、``make yourhost.cf'' とすることで yourhost.cf が作成されます。これを /etc/sendmail.cf などにコピーして使用します (実際に使用する前に、 “sendmail -bt -C./yourhoust.cf” などを実行して yourhost.cf が正しく作成されているかどうかをチェックしてください)。

ホスト名だけの名前から、ドメイン名付きの名前へマッピングを sendmail に提供する方法の記述例を示します。 yourhost.mc に以下の記述を含めてください。

    LOCAL_RULE_3
    R$* < @ $+ > $*         $: $1 < @ $(hostmap $2 $) > $3

ここで、ローカルルールを定義しています。この内容はヘッダにも反映されます。 さらに、

    LOCAL_CONFIG
    Khostmap hash /etc/hostmap.db
    Kyplocal nis -m hosts.byname

という記述を加えてください。1 行目は、以下の設定がローカルな設定であることを 示しています。2 行目が makemap を必要とする例です。3 行目は、ホスト名の マッピングを NIS からとってきます。

この設定を利用した sendmail.cf を実際に使うには、 /etc/hostmap.db を作成する必要があります。

    mercury% cd /etc
    mercury% makemap hash hostmap
    moon moon.silver-castle.millennium      <- もちろん架空のドメインです
    ^D                                      <- コントロール D (EOF 文字)

これによって、たとえば、 “tsukino@moon” は “tsukino@moon.silver-castle.millennium” に変換されます。実際の使い方は、 .mc ファイルの設定によって変化します。 sendmail/cf/README などを参照してください。

関連項目
sendmail(8)