root権限で動作させたい常駐プログラムを作って動作させてみたものの、うまくいく場合とうまくいかない場合があって、かなりはまってしまった。 シェル上でrootユーザでperlプログラムを実行した場合と、なんらかのトリガー(メールや、xmlrpcとかでコマンドを受け取って)を経て自動で実行させるときの違いを調べてみた。 perlsec - Perl のセキュリティ http://perldoc.jp/docs/perl/5.6.1/perlsec.pod Perl は、そのプログラムが異なる実ユーザー ID、実効ユーザー ID、実グループ ID、実効グループ ID を使って実行されることを検出したときに、自動的に 汚染モード (taint mode) と呼ばれる特別なセキュリティチェックのセットを有効にします。 UNIX パーミッションにおける setuid ビットはモード 04000 で、