CF ファイル形式とは?
.cf ファイルは、1983年にカリフォルニア大学バークレー校の Eric Allman によって作成され、現在は Proofpoint によってメンテナンスされている最古の Unix メール転送エージェントの一つ、Sendmail の実行時設定ファイルです。標準的なファイル名は sendmail.cf で、ほとんどの Linux および Unix システムでは /etc/mail/sendmail.cf に配置されます。また、サブミッションモードの動作を制御する submit.cf が対として存在します。
このファイルはプレーンテキストですが、手動で読み書きするのが非常に困難なことで有名な、高密度で難解な構文を使用しています。各行は、ディレクティブの種類を示す1文字の大文字で始まります。D はマクロの宣言、C と F はアドレスクラスの定義、O はオプションの設定、S はルールセットの開始、R はアドレス書き換えルールの指定、M はメーラー設定の定義です。書き換えルールでは $ 演算子を使用してアドレスの一致と変換を行いますが、これは非常にコンパクトながら、人間にはほぼ解読不能な表記となります。
この複雑さのため、推奨されるワークフローは .cf を直接編集しないことです。代わりに、管理者は人間が読みやすい小規模な .mc マクロファイル を管理し、m4 マクロプロセッサを実行して sendmail.cf を再生成します。ファイルの先頭付近にある V 行(例:V10/Berkeley)は、それを生成した Sendmail のバージョンを記録しています。
ソースとなる .mc はわずか数キロバイトですが、生成されたファイルは通常 30-60 KB に達します。.cf 拡張子は、ColdFusion コンポーネントや CFEngine ポリシーファイルなど、無関係なフォーマットでも使用されるため、ファイルに遭遇した際は文脈が重要になります。
セキュリティと安全性
リスク: MEDIUMsendmail.cf を読み取ることは安全です(プレーンテキストです)。本当のリスクは「編集」にあります。sendmail.cf はメールサーバーを制御するため、タイプミスや不適切なルールはメールフローを停止させたり、配送ループを引き起こしたり、最悪の場合、スパマーに悪用されるオープンリレーに変えてしまう可能性があります。ルール:難解な .cf を手動で編集しないでください。小規模な sendmail.mc を編集し、m4 で再生成してください。常に動作している .cf を先にバックアップし(cp sendmail.cf sendmail.cf.bak)、一度に1つずつ変更し、運用前にテストしてください。信頼できないチュートリアルからコピーしたリレー/アクセス設定には特に注意してください。設定ミスのあるリレーはセキュリティと評判上の重大な危険となります。
形式の詳細
概要- ColdFusion コンポーネント / テンプレート - Adobe ColdFusion ソースファイルは .cfc/.cfm を使用しますが、一部の構成では ColdFusion のインクルードやコンポーネントに .cf を使用します。
- CFEngine ポリシーファイル - CFEngine 言語で記述された構成管理ポリシーで、cf-agent によって読み込まれます。
- 汎用アプリケーション設定 - さまざまなプログラムが、独自のキー/値構文を持つプレーンテキスト設定ファイルとして .cf を再利用しています。
CF ファイルを開くプログラム
/etc/mail/sendmail.mc を編集し、«m4 sendmail.mc > sendmail.cf» を実行(または /etc/mail で «make» を実行)してから Sendmail を再起動することです。 技術的詳細
詳細仕様| MIME タイプ | text/plain |
| 典型的なファイル名 | sendmail.cf; またサブミッションモード動作のための submit.cf |
| Linux/Unix でのデフォルトパス | /etc/mail/sendmail.cf |
| エンコーディング | ASCII / UTF-8 プレーンテキスト |
| 典型的なファイルサイズ | 30-60 KB (生成されたファイル); ソースの .mc は通常わずか数キロバイト |
| ファイルシグネチャ / マジックバイト | なし - プレーンテキスト。高密度な1文字のディレクティブ行 (D, S, R, M, O) と $ 書き換え演算子によって識別されます |
| バージョンマーカー | ファイル上部付近の V 行 (例: V10/Berkeley) が、そのファイルを生成した Sendmail リリースに関連付けます |
| ディレクティブの種類 | D (マクロ), C/F (アドレスクラス), O (オプション), P (優先順位), S (ルールセット), R (書き換えルール), M (メーラー定義) |
| 生成方法 | m4 マクロプロセッサを使用して .mc ソースファイルからコンパイルされます。手動による直接編集は強く推奨されません |
| 書き換えルールの構文 | ルールは $ 演算子 (例: $+, $*, $1) をパターン型トークンとして使用し、番号付きまたは名前付きのルールセットにグループ化されます |
| 実行時の動作 | Sendmail は起動時に sendmail.cf を読み込みます。変更を反映させるには SIGHUP または再起動が必要です |
| 関連するオペレーティングシステム | Linux, BSD, Solaris, AIX, HP-UX; 歴史的には macOS (OS X 10.8 まで Sendmail を搭載) も含まれます |
| 拡張子の衝突 | .cf 拡張子は ColdFusion コンポーネント、CFEngine ポリシーファイル、および汎用アプリケーション設定でも使用されるため、判別には文脈が必要です |
| 関連ファイル | submit.cf は Sendmail のサブミッションデーモン (ポート 587) を制御します。submit.mc から sendmail.cf と共に生成されます |
| リリース日 | 1983 (Sendmail, one of the original Unix MTAs); sendmail.cf syntax dates to that era |
| 最新バージョン | Tied to Sendmail releases (8.x); sendmail.cf is generated by m4 from a .mc file |
| 仕様書 | www.proofpoint.com |
CF の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。CF ファイルについて最初の質問をしてみましょう。
よくある質問
.cf ファイルとは何ですか?
sendmail .cf ファイルを開くにはどうすればよいですか?
m4 ツールで sendmail.cf を再生成することです。なぜ sendmail.cf はこれほど読みづらいのですか?
Sendmail の設定を安全に変更するにはどうすればよいですか?
/etc/mail/sendmail.mc(または access/aliases ファイル)を編集し、現在の sendmail.cf をバックアップしてから、«m4 sendmail.mc > sendmail.cf» を実行(または /etc/mail で «make» を実行)して Sendmail を再起動します。.cf を直接編集しないでください。sendmail.cf を .mc ファイルに戻すことはできますか?
m4 による生成は一方通行です。.mc を紛失した場合は、バックアップやバージョン管理から復元するか、新しく sendmail.mc を作成して .cf を再生成する必要があります。