Freesco, NND, CDN, EOS
http://forum.freesco.pl/

skrypt Perla jako CGI i opalanie skryptow
http://forum.freesco.pl/viewtopic.php?f=22&t=13365
Strona 1 z 1

Autor:  lenox [ poniedziałek, 28 sierpnia 2006, 03:14 ]
Tytuł:  skrypt Perla jako CGI i opalanie skryptow

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
NND: Zapisuję reguły firewalla [-13G [Trwa....] [-13G [Wykonane]


Problem pojawia sie gdy z poziomu perla odpalam skrypt z parametrami, bez parametrow dziala ok. Jak to rozwiazac?

Autor:  zciech [ poniedziałek, 28 sierpnia 2006, 11:01 ]
Tytuł: 

thttpd nie ma uprawnien roota.
Poczytaj watki o tablicy ogloszen.

Autor:  lenox [ poniedziałek, 28 sierpnia 2006, 12:53 ]
Tytuł: 

moj thttpd juz dziala jako root, wiec raczej nie w tym problem.
: [/] [] ()
 [ -z "$PID" ] && /usr/sbin/thttpd -p 82 -c "/cgi-bin/*" -u root -d /var/www -T iso-8859-2 -l /dev/null   

Autor:  puchatek007 [ poniedziałek, 28 sierpnia 2006, 13:02 ]
Tytuł: 

1. W skrypcie podaje pełną ścieżke do iptables
2. nie uruchamiaj thttpd jako root bo to podobno jest niebezpieczne
3. do pliku /etc/sudoers dodaj linijke: nobody ALL=NOPASSWD:/usr/sbin/iptables . Może to pomoże.

To tylko moje propozycje.

Autor:  lenox [ poniedziałek, 28 sierpnia 2006, 14:02 ]
Tytuł: 

podalem pelna sciezke do iptables i skrypt dziala, jedyne co zostaje to:
: [/] [] ()
stty: standard input: Invalid argument
michal

Zignorowac to?

Autor:  puchatek007 [ poniedziałek, 28 sierpnia 2006, 14:06 ]
Tytuł: 

Może podaj jeszcze pełną ścieżke do pliku p2pblocked i sprawdź czy ma prawa do zapisu.

Autor:  lenox [ czwartek, 31 sierpnia 2006, 01:27 ]
Tytuł: 

W necie znalazlem takie info:
Cytuj:
"This error message is issued when su tries to suppress the terminal's echo of the user's typed password. Since this error is irrelevant, we suppress it by temporarily redirecting standard error to /dev/null."


wiec dalem:
: [/] [] ()
$script = "/etc/awork/p2pblock michal 2> /dev/null";
i wszystko gra.

Autor:  czerwo [ czwartek, 31 sierpnia 2006, 21:42 ]
Tytuł: 

nie wierze!

Autor:  lenox [ piątek, 1 września 2006, 14:40 ]
Tytuł: 

Przyjrzalem sie temu blizej i wyszlo na to ze blad generuje linia
: [/] [] ()
/etc/rc.d/iptables save

(a nie parametry, jak myslalem wczesniej) a pomaga dodanie na poczatku skryptu /etc/awork/p2pblock linii
: [/] [] ()
stty erase '^H'

co nie zmienia faktu ze
: [/] [] ()
$script = "/etc/awork/p2pblock michal 2> /dev/null";

tez niweluje komunikat o bledzie...

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/