Mam taki skrypt w perlu, ktory odpalam jako CGI (uzywam thttpd):
#!/usr/bin/perl
print "Content-type: text/html\n\n";
$script = "/etc/awork/p2pblock michal";
print "<PRE>\n";
chdir("/etc/awork");
$res = `$script`;
print $res;
print "</PRE>\n";
jak widac odpala on skrypt /etc/awork/p2pblock z parametrem "michal".
p2pblock wyglada tak:
#!/bin/bash
echo $1
x=$(grep $1 /etc/hosts)
y=$(grep $1 p2pblocked)
if [ -z "$x" ]; then
echo "Nie ma takiego uzytkownika"
else
if [ -z "$y" ]; then
iptables -I PREROUTING -t mangle -s $1 -p tcp --dport 111:442 -j DROP
iptables -I PREROUTING -t mangle -s $1 -p tcp --dport 444:65535 -j DROP
iptables -I PREROUTING -t mangle -s $1 -p udp --dport ! 53 -j DROP
/etc/rc.d/iptables save
echo "$1" >> p2pblocked
else
echo "Uzytkownik jest juz zablokowany"
fi
fi
Jesli odpalam skrypt w perlu recznie wszystko dziala ok, gdy odpalam jako cgi dostaje:
Cytuj:
/etc/awork/p2pblock: line 10: iptables: command not found
/etc/awork/p2pblock: line 11: iptables: command not found
/etc/awork/p2pblock: line 12: iptables: command not found
stty: standard input: Invalid argument
michal
[1;34mNND: [1;37mZapisuję reguły firewalla[1;0m [-13G [1;34m[[0;36mTrwa....[1;34m][1;0m [-13G [1;34m[[1;37mWykonane[1;34m][1;0m
Problem pojawia sie gdy z poziomu perla odpalam skrypt z parametrami, bez parametrow dziala ok. Jak to rozwiazac?