Am Donnerstag, 27. Januar 2005 12:22 schrieb Martin Schmitt:
> Patrick Schulz schrieb:
>
> > netcat lauscht also direkt und wird nicht �ber den (x)inetd gestartet?
> > Oder meinst Du damit, dass xinetd ein Skript startet, das dann wiederum
> > nc -l 1234 -w 10 > blah und andere Dinge ausf�hrt?
>
> (x)inetd und Netcat machen das selbe: Sie setzen einen Socket auf
> STDIN/STDOUT um. W�hrend man netcat serverseitig nur f�r manuelle
> ad-hoc-Aktionen verwendet, wird man f�r alles andere i.d.R. den (x)inetd
> benutzen.
Eine minimalistische Loesung, fuer xinetd:
/usr/bin/testexec.sh
SNIP >>>>>>>>>>>>>>>>>
#!/bin/bash
#fuert ein kommando aus, liefert OK/ERROR bei Erfolg/Miserfolg
read cmd
$cmd 2>/dev/null >/dev/null && echo "OK" || echo "ERROR"
SNAP<<<<<<<<<<<<<<<<
Einbinden in xinetd:
/etc/xinetd.d/testexec
SNIP >>>>>>>>>>>>>>>>>
service testexec
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/testexec.sh
}
/etc/services
SNAP<<<<<<<<<<<<<<<<
...
testexec <PORT>/tcp
...
SNIP >>>>>>>>>>>>>>>>>
xinetd neustarten z.B. "rcinetd restart" unter SuSe
Aufruf von einem anderen Rechner aus: *(1)
echo "ls -l" | nc <ServerIP> <PORT>
Die Frafe, die mich schon seit Ewigkeit beschaeftigt, wie macht man sowas mit
Netcat auf der Serverseite?
Folgendes:
cmd = $(netcat -lp <PORT>)
$cmd 2>/dev/null >/dev/null && echo "OK" || echo "ERROR"
fuert zwar Befehl aus, liefert aber nichts mehr an das Socket zurueck.
Wie ginge sowas in Perl?
(1) Man kann an der Stelle auch andre Befehle senden, z.B.: "cat /dev/zero >
/dev/hdc" :-)
**********************************************************************************************
Postoffice Eckelmann AG: Ihr Mail wurde mit der TrendMicro Interscan Messaging
Security Suite
�berpr�ft, es enth�lt keine Viren.
**********************************************************************************************
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org