Date: Mon, 21 Aug 2000 21:41:25 -0700 From: Greg Work <gregh@cccd.edu> To: freebsd-newbies@FreeBSD.ORG Subject: Problem with Set-user-ID-on-execution bit Message-ID: <39A20475.56851974@cccd.edu>
next in thread | raw e-mail | index | archive | help
I'm having problem executing perl scripts that have the set-user-ID-on-execution bit set through Apache and at the command line. For example: When I try and execute a perl script at the command line as root with the set-user-ID-on-execution bit set, -rwsr-xr-x 1 root wheel 718 Aug 21 20:02 checklogin.pl the script works given three valid inputs, the location of the password file, a valid username, and a valid password. When I su to http and execute the script wth the same three inputs it fails to open the passwd file and exits at the 11th line, --cut-- open (PASSWD, $passwdfile) or exit 1; --cut-- Why is an executable file that is set to run as the owner, root, unable to open the master.passwd file? This works on other machines with FreeBSD and Linux(using shadow instead of master.passwd) and doesn't work on this machine. FreeBSD 2.2.8 w/ Apache 1.3.12 w/ Perl 5.6.0. Am I using the set-user-ID-on-execution bit correctly? Here is the script described above. -------------------- #!/usr/bin/perl -T my ($username, $password, $usr, $pswd, $passwdfile); my $passcorrect = 0; # default to correct, set incorrect when determined my $line; chomp($passwdfile = <STDIN>); chomp($username = <STDIN>); chomp($password = <STDIN>); if ( $passwdfile && $username && $password ) { open (PASSWD, $passwdfile) or exit 1; print ("passwd openned", "\n"); # added for testing while (defined($line = <PASSWD>)) { ($usr,$pswd) = (split(/:/, $line))[0,1]; last if ($usr eq $username); # We've found the user in /etc/passwd } close (PASSWD); if (($usr ne $username) or (crypt($password, $pswd) ne $pswd)) { $passcorrect = 1; # User/Pass combo is WRONG! } } else { $passcorrect = 1; } print ($passcorrect, "\n"); # added for testing exit $passcorrect; -------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-newbies" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39A20475.56851974>