in reply to suidperl

Your scripts should never start with

#!/usr/bin/suidperl -w

Allways just use /usr/bin/perl.

suidperl is needed to be able to run scripts setuid. Usually this is impossible, because scripts are handled by an interpreter which isn't installed setuid.

'Running setuid' means that a program is started as if it was started by it's owner. So, if a file is owned by root:root and is setuid, it would be running with root priveliges regardless of what user started it. On startup, suidperl will change it's effective user-id to the id of the script's owner.

Read man perlsec for more information.

A script however is started with the permissions of the interpreter. So, if you make a script setuid it wouldn't have any effect. This is where suidperl comes in: suidperl is usually installed setuid root:root and is automatically invoked by perl when perls sees the scripts it's about to start is setuid.