tbo has asked for the wisdom of the Perl Monks concerning the following question:

The function getpwnam is strange in perl 5.6.1. with the privileges.
When used in a script launch from the command line everything is OK : a normal user can't read /etc/shadow and if the script have suid privileges and belong to root, the normal user can read /etc/shadow.
But, if the script is launch as a CGI script from Apache 1.3.20, I have the opposite ! With suid (and root's privileges), the script can't read /etc/shadow and without root's privileges it can !!!
I have found a solution : install Passwd::Linux and everything go back to what I expected. But, during the installation I had a message saying something like mgetpwnam and getpwnam don't work the same way.
So, I ask your wisdom what is the problem ? (I really want to understand)
Thanks.
  • Comment on CGI+getpwnam+suid problems with perl 5.6.1 on Linux