• 締切
  • すぐに回答を!

メール受信時にパイプしてPerlプログラム起動したい(FreeBSD sendmail)

  • 質問No.5054093
  • 閲覧数791
  • ありがとう数2
  • 回答数1

お礼率 100% (3/3)

FreeBSDのサーバで、メールを受信した際にその内容をパイプして、標準入力でPerlプログラムにパイプさせてWebサイトに反映させるという処理をしたいと思っております。
ただ、Perl以前の問題でつまずいています。

メール受信時に、/etc/mail/alias を編集し、
アカウント "| /path/proguram.pl"
と設定しました。同様の設定でメールの転送はできているので、書式は間違っていないかと思います。

このプログラムを指定したとき、このメールアドレスにメールを送信すると、以下のエラーが出ます。
----- The following addresses had permanent fatal errors -----
"| /home/****/www/cgi-bin/test.pl"
(reason: 126)
(expanded from: <****@**.**>)

----- Transcript of session follows -----
/home/****/www/cgi-bin/test.pl: Permission denied
554 5.3.0 unknown mailer error 126

サーバ会社へ問い合わせたところ、プログラムを起動しに行くmailnullというユーザ(?)の権限の問題だそうです。

mailnullというユーザにプログラムを起動するだけの権限を与えるにはどうしたらよいでしょうか?
それとも、ほかの方法がありますでしょうか?

よろしくお願いします。

回答 (全1件)

  • 回答No.1

ベストアンサー率 44% (92/208)

/home/****/www/cgi-bin/test.pl
のグループ:権限はどうなってますか?
mailnullというユーザのグループに同じグループを追加して
chgmod g+x /home/****/www/cgi-bin/test.pl
にするか
もう誰でも実行していいなら
chgmod o+x /home/****/www/cgi-bin/test.pl
で。
お礼コメント
uni-taka

お礼率 100% (3/3)

お返事ありがとうございます。

mailnullはsendmailのデフォルトのユーザに設定してあり、mailnullグループに属しているようです。
/home/****/​www/cgi-bin/test.plは、その所有者とroot以外は権限を持っていません。

長いこと悩んでいましたが、実はこの質問を投稿した後で自己解決できました。

mailnullをsudoerに登録して、パスワードなしでsudoできるようにし、
パイプする際にsudoをはさんで起動して解決しました。
セキュリティ的にどうなのか? とも思いますが。。。
/etc/mail/aliases や ユーザごとのforwordをいじられない限りは問題ないはずなので、しばらくこの方法で解決しようと思っております。

ありがとうございました!
投稿日時:2009/06/19 10:26
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ