質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

2752閲覧

postfixでaliasesを使ったスクリプト実行でのpostfixユーザ以外での実行方法

toroleaman

総合スコア95

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2020/03/22 15:29

postfixにて、メール受信時にスクリプトを実行するようにしています。

vi /etc/aliases

(略)
mailuser: |"/usr/bin/bash /tmp/test.sh"

mailuserへのメールを受信すると、/tmp/test.shを実行するようにしていますが、
test.shが、shelluserの所有物であり、スクリプト実行者であるpostfixに実行権限がありません。

対応方法としては、以下の案を考えていますが、
どうすべきなのか悩んでおります。
アドバイスを頂けると助かります。

案1)test.shに他ユーザへ実行権限をあたえるため、
chmod 755 test.shとする。
⇒実行権限を与えたくなかったので、却下。

案2)shelluserで実行できるようなaliasesの書き方ができるか
⇒調べたが、そのようなやり方は見つからず。

案3)postfixそのものをshelluserで起動する方法
⇒調べてみたが、postfixユーザ以外で起動するデメリットもありそう。

※実はこのtest.shの中でmysqlコマンドを発行しており、postfixユーザで実行しているため、
mysqlコマンドが見つかりませんというエラーが発生しています。
これを回避するため、シェルの実行権限を与えたり、mysqlコマンドのパスを通してあげていますが、
postfixユーザではなく、shelluserでシェルを実行させたいという要望があります。

案2または、案3で解決するのではないかと思っていますが、そのやり方が分かりません。
どなたかご存知の方がいらっしゃいましたら、ご教授願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

案2で。

plain

1</etc/postfix/main.cf> 2 3allow_mail_to_commands = alias, forward, include

plain

1</etc/aliases> 2 3mailuser: :include:/path/to/foo"

plain

1</path/to/foo> 2 3|"/usr/bin/bash /tmp/test.sh"

ファイル/path/to/fooに書いたコマンドは、/path/to/fooのオーナーの権限で実行されます。
つまり、chown shelluser /path/to/fooしておけばいいです。
このファイルはpostfixユーザーから読める必要があるはずです(未確認)。

投稿2020/03/22 15:58

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toroleaman

2020/06/24 13:51

回答遅くなりましたが、回答いただいた内容でうまくいきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問