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: が付かないようにする

created:

Back to top