• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

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?
 

olnol

Alkmene
Registriert
28.12.09
Beiträge
30
Ok.Sorry meine Schuld. Hatte in der Webserver-Conf für CGI die Sh statt die Bash angegeben.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
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.