web-dev-qa-db-ja.com

スクリプトへのpostfixパイプ:execvp権限拒否エラー

私はpostfixを初めて使用し、メッセージを特定の電子メールアドレスに送信してbashスクリプトに送信しようとしています。重要な場合に備えて、CentOS6を実行しています。

私のスクリプトには(テスト用の)777権限があり、テストアカウントに電子メールを送信すると、postfixがスクリプトを実行しようとしていることがわかります。これはメールログからの関連行です:

2月16日15:08:40 lserver2 postfix/local [19675]:F4045103000:to =、orig_to =、relay = local、delay = 1737、delays = 1737/0.01/0/0.01、dsn = 4.3.0 、status = deferred(一時的な失敗。コマンド出力:ローカル:致命的:execvp/data/scripts/testscript:アクセスが拒否されました)*

これは権限の問題のようです。スクリプトを「postfix」または「nobody」として実行しようとすると、エラーが発生します:このアカウントは現在利用できません。

ここからどこに行けばいいのかわからない……次のステップがはっきりしない投稿をいくつか読んだ。 (私はすべてのメールをスクリプトにリダイレクトしたくありません、そして1つの答えはとても単純な何かのために複雑に見える方法です)

5
TSG

たとえば、スクリプトがfooによって所有されている場合は、次のことを試してください。

  1. /home/foo/.aliasesを作成し、piping行を/etc/aliasesからそこに移動します。
  2. postalias /home/foo/.aliasesを実行します。
  3. /home/foo/.aliasesalias_maps/etc/postfix/main.cfに追加します。
  4. 接尾辞を再起動します。

/home/foo/.aliasesおよび/home/foo/.aliases.dbの所有者はfooである必要があることに注意してください

http://www.postfix.org/ADDRESS_REWRITING_README.html#aliases を参照してください。それは言う:

セキュリティ上の理由から、コマンドとファイルの宛先への配信は、エイリアスデータベースの所有者の権限で実行されます。

3
Tsutomu

SOの this answer を参照してください。2つのオプションがあり、1つはTsutomuが共有したものです。

もう1つはdefault_privs = <owner of the executing script> in main.cf

それは私の許可拒否の問題を解決するのに役立ちます。

0
checksum