Ik heb een probleempje met perl.
Na flink zoeken kom ik niet uit het volgende probleem:
Ik heb een suid perl script, eigenaar root. Hij moet dus als root gestart worden. Ik roep het script op via apache, welke draait onder de user apache. Het volgende script:
geeft als output:
Dat is dus goed.
Maar het volgende script:
geeft als output:
Op de 1 of andere manier is het dus zo dat als er 2 commando's staan in een system regel, perl weer terugvalt op de normale user.
Waarom is dit zo? Hoe verhelp ik het? Iemand tips, suggesties?
Na flink zoeken kom ik niet uit het volgende probleem:
Ik heb een suid perl script, eigenaar root. Hij moet dus als root gestart worden. Ik roep het script op via apache, welke draait onder de user apache. Het volgende script:
code:
1
2
3
4
| #!/usr/bin/perl
$ENV{'PATH'} = '';
print "Content-type: text/html\n\n";
system '/usr/bin/whoami'; |
geeft als output:
code:
1
| root |
Dat is dus goed.
Maar het volgende script:
code:
1
2
3
4
| #!/usr/bin/perl
$ENV{'PATH'} = '';
print "Content-type: text/html\n\n";
system '/usr/bin/whoami;/usr/bin/whoami'; |
geeft als output:
code:
1
2
| apache apache |
Op de 1 of andere manier is het dus zo dat als er 2 commando's staan in een system regel, perl weer terugvalt op de normale user.
Waarom is dit zo? Hoe verhelp ik het? Iemand tips, suggesties?