use POSIX qw(&setuid &setgid); ($uid, $gid, @argv)=@ARGV; setgid($gid) or die('unable to set gid: ', $!, "\n"); $)=$gid.' '.$gid; setuid($uid) or die('unable to set uid: ', $!, "\n"); exec({ $argv[0] } @argv) or die('unable to exec ', $argv[0], ': ', $!, "\n");