UbuntuでPostfixの設定ファイルであるmain.cfの文法に間違いがないかの確認を行う方法です。
postfix checkで設定が間違っていないかを確認
「postfix check」コマンドを使用することで、postfixの設定ファイルである「/etc/postfix/main.cf」の文法が正しいかどうかを確認することができます。
また、設定ファイルの所有者やパーミッションの設定も合わせて確認してくれます。
sudo postfix check
スペルミスや設定可能な値かどうかの確認は行ってくれますが、設定内容が正しいかどうかの確認は行ってくれませんので注意してください。
一般ユーザで実行する際は管理者権限が必要なのでsudoを使って実行する必要があります。
実行例
postfix checkを実行した際の例です。
文法に間違いがない場合
確認した結果、設定ファイルの文法に間違いがない場合は何も表示されません。
$ sudo postfix check
設定内容に間違いがあった場合
「inet_protocols = ipv4」という設定を「inet_protocols = ip4」というように、ipv4の部分をわざと間違った値に変更して「postfix check」コマンドを実行してみます。
$ sudo postfix check postfix: fatal: unknown inet_protocols value "ip4" in "ip4"
「unknown inet_protocols value "ip4" in "ip4"」と、間違った部分が表示してくれました。
設定内容までは確認してくれません
postfix checkは文法の確認をするだけなので、例えばipv4と設定したかったのに、間違ってallと設定してしまった場合は、allという設定値自体は問題なく設定できる値なので間違いと検知してくれませんので注意してください。
所有者がroot以外だった場合
postfixの設定ファイルである/etc/postfix/main.cfの所有者をroot以外に変更してから、postfix checkコマンドを実行してみます。
$ sudo postfix check postfix/postfix-script: warning: not owned by root: /etc/postfix/./main.cf
ファイルの所有者がroot以外に設定されていると教えてくれます。
パーミッションの設定に問題があった場合
所有者以外にも書き込み権限を設定した後にpostfix checkコマンドを実行してみます。
$ sudo postfix check postfix/postfix-script: warning: group or other writable: /etc/postfix/./main.cf
書き込み権限が所有者以外にも設定されていると教えてくれます。
sudoを使用せずに実行した場合
sudoを使用せずに実行すると、下記のようなエラーが表示されます。
$ postfix check postfix: error: to submit mail, use the Postfix sendmail command postfix: fatal: the postfix command is reserved for the superuser
コメント