• 締切済み

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

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というユーザにプログラムを起動するだけの権限を与えるにはどうしたらよいでしょうか? それとも、ほかの方法がありますでしょうか? よろしくお願いします。

みんなの回答

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.1

/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
質問者

お礼

お返事ありがとうございます。 mailnullはsendmailのデフォルトのユーザに設定してあり、mailnullグループに属しているようです。 /home/****/​www/cgi-bin/test.plは、その所有者とroot以外は権限を持っていません。 長いこと悩んでいましたが、実はこの質問を投稿した後で自己解決できました。 mailnullをsudoerに登録して、パスワードなしでsudoできるようにし、 パイプする際にsudoをはさんで起動して解決しました。 セキュリティ的にどうなのか? とも思いますが。。。 /etc/mail/aliases や ユーザごとのforwordをいじられない限りは問題ないはずなので、しばらくこの方法で解決しようと思っております。 ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A