Perl でsetuid されたCGIの実行

CentOS5.1で、setuidされたPerlCGIを実行したところ、見慣れないエラーが出て失敗する。

Can’t do setuid (cannot exec sperl)

ググったところ、どうやら、CentOSに付属されているperlでは、setuidされたCGIは実行できず、別途、setuid用のperlをインストールする必要があるとのこと。
インストールは簡単で以下のとおり。

# yum install perl-suidperl

そして、CGIの1行目は、

#!/usr/bin/perl

ではなくて、

#!/usr/bin/suidperl

にする。

ついでに、おまじないも書いておくと吉。

$< = $>;
$( = $) = 0;