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.