Perlの場合、setuidが立てられているスクリプトを実行しようとすると、自動的にTaintモードが発動するようである。(OSレベルのsetuidの有効・無効も絡むようではあるが・・・) http://perldoc.jp/docs/perl/5.6.1/perlsec.pod http://x68000.q-e-d.net/~68user/unix/pickup?setuid http://x68000.q-e-d.net/~68user/webcgi/permission.html などを参照のこと。 で、Taintモードだと $arg = shift; これ、汚染されてると見なされるみたい・・・。コマンドライン引数から指定された値を「そのまま」使うのはよろしくない。Taintモードにおいては。