書式
makemap [-C file] [-N] [-c cachesize] [-d] [-e] [-f] [-l] [-o] [-r] [-s] [-u] [-v] maptype mapnam解説
makemap は、 sendmail(8) がキー付きマップを検索する際に用いるデータベースマップを作成します。 これは標準入力から読み込みを行い、指定された mapname に出力を行います。コンパイル方法に依存しますが、 makemap は最大 3 種類のデータベースフォーマットを扱います。 扱うフォーマットは maptype で指定します。 maptype には、以下のようなものがあります。
- dbm
- DBM フォーマットマップ。 ndbm(3) ライブラリが必要です。
- btree
- B-Treeフォーマットマップ。 新しい Berkeley DB ライブラリが必要です。
- hash
- ハッシュフォーマットマップ。 同じく Berkeley DB ライブラリが必要です。
すべてのフォーマットで、 makemap は標準入力から空白文字で区切られた 2 つの単語を読み込みます。 最初の単語はデータベースキーで、2番目の単語がその値です。 値が ``%n'' (n は数字) という文字列を含んでいると、sendmail がパラメータ置換を行います。 ``%'' という文字を含めるには、``%%'' とする必要があります。 空行や ``#'' から始まる行は無視されます。
TrustedUser オプションが sendmail の設定ファイル中で設定されており、 makemap が root に起動された場合、生成されたファイルは指定された TrustedUser の所有となります。
フラグ
- -C
- TrustedUser オプションを見付けるために、 指定した sendmail 設定ファイルを使用します。
- -N
- 文字列の終端記号として、ヌル文字もマップに含めます。 これは、sendmail.cf の ``K'' 行における -N フラグと一致していなければ なりません。
- -c
- 指定したハッシュと B-Tree キャッシュサイズを使用します。
- -d
- マップ中に重複するキーが存在することを許します。 B-Treeフォーマットマップでのみ可能です。 2 つの同じキーが読まれた場合、両方ともマップに挿入されます。
- -e
- 空の値を許します (右側の値)。
- -f
- 通常、キーのなかのすべての大文字は、 すべて小文字として記録されますが、 このフラグを指定することによってこの動作を行わないように指定できます。 これは、sendmail.cf 中の K 行における -f フラグと一致していなければなりません。
- -l
- サポートされているマップタイプを列挙します。
- -o
- すでにあるファイルに追加が行われます。 すでに存在するファイルを引数として指定することができます。
- -r
- すでに存在しているキーを置き換えます。 通常はすでに入力したキーをさらに繰り返して入力しても、 makemap は警告を出力し、データベースには取り込みません。
- -s
- 生成されるマップの安全チェックを無視します。 これには、 だれでも書き込めるディレクトリへのハードリンクおよびシンボリックのチェックも 含まれます。
- -u
- データベースの内容を、標準出力へダンプ (アンマップ) します。
- -v
- 処理の内容を詳細に表示します。
歴史
makemap コマンドは 4.4BSD から登場しました。