• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Exec funktioniert nicht im Bash-CGI-Skript

olnol

Alkmene
Registriert
28.12.09
Beiträge
30
Ich habe ein Bash-CGI-Skript in dem ich nach dem absenden eines Forumlars eine TCP-Socket-Verbindung aufbauen möchte.
Das ganze ist wie folgt gelöst:

Code:
if [ "$submit" = "true" ] 
then
exec 3<>/dev/tcp/192.168.1.149/9000
echo "Test" >&3
fi
Dieser Codeabschnitt befindet sich über der Html-Ausgabe. Wird das Formular abgesendet ist dieser Teil aktiv und dann scheint exec nicht zu funktionieren. Zum einen wird der danach folgende Html-Code nicht mehr ausgegeben und zum anderen wird der String auch gar nicht erst übertragen.

Teste ich das ganze direkt in der Bash wird der Socket problemlos generiert und ich ermpfange den String auf dem Port.
Die Bash wurde mit net-redirections=enable compiliert.

Mit "which exec" erhalte ich keinen absoluten Pfad. exec ist ja sicherlich auch direk in der bash implementiert.


Was kann ich tun?
 
Ok.Sorry meine Schuld. Hatte in der Webserver-Conf für CGI die Sh statt die Bash angegeben.
 
Wenn du diese Methode benutzt, solltest du zu Beginn des Skripts einen Trap zum Schliessen des Deskriptors beim Verlassen der Shell als "Sicherheitsnetz" setzen:
Code:
trap ">&3-" 0
Sonst öffnest du ein potentielles Sicherheitsloch.