aliase駆動プログラムの実行ユーザnobodyから任意のユーザ権限で起動できるようにする
alias駆動により起動されるプログラムこの例はfooユーザに送られたメールを/path/to/commandプログラムに渡し起動します。 通常この時の実行ユーザはnobodyユーザが起動したことになる。
/etc/aliases
foo: |/path/to/command
もしこのプログラムからメールを送信した場合MTAであるpostfixは信頼されていないnobodyユーザがメールを送信したのでその印としてメールヘッダに
X-Authentication-Warning: ns.example.org: nobody set sender to webmaster@example.org using -f
のようなものが付加されてしまいます。 このメールを受け取ったメールサーバの設定によっては受け取りを拒否されることやなんらかのペナルティを受ける可能性も否定出来ないため好ましくない。
この問題を避けるためには起動するプログラム(/path/to/command)の実行ユーザをnobodyからpostfixのメールサーバに信頼された任意のユーザが起動するようにする事でwarningが付加されないようにすることが出来ます。
fooユーザ権限で起動するように設定
以下のようにパイプを使ってcommandにメールを渡している部分を書き換えます。(:コロンが連続している所に注意)
foo: :include:/path/to/file
次に/path/to/fileを新規作成してファイルの内容を以下のようにします。
|/path/to/command
/path/to/fileファイルの所有権はchown fooにしておきます。
最後にpostaliasコマンドを発行してファイルの更新を知らせます。
$ sudo postalias /etc/aliases
postfixが上記includeを許可するように設定を変更する
/usr/local/etc/postfix/main.cf
allow_mail_to_commands = alias,forward,include allow_mail_to_files = alias,forward,include
postfix のデフォルト設定では include が含まれていないためこのオプションをしていないとエラーになってしまいます。
aliases で include が使えるようにするのに以下のオプションを設定する
http://www.postfix.org/aliases.5.html
http://www.postfix.org/postconf.5.html#allow_mail_to_commands
これでプログラムの実行ユーザをnobodyから/path/to/fileの所有ユーザに変更することができ メールヘッダに X-Authentication-Warning: が付加されないようにすることが出来ました。 ※ユーザfooがpostfixから信頼されている場合
参考:信頼されたユーザから送信について
メールヘッダに X-Authentication-Warning: が付かないようにする