| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: wie erstelle ich eine perl-shell in einem cgi-script im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige hallo ich möchte bei mir auf der homepage ein script haben, mit dem ich sozusagen eine shell auf dem ...
![]() |
| | #1 (permalink) |
| Registriert seit: 13.10.02 ![]() Likes: 0 | Anzeige hallo ich möchte bei mir auf der homepage ein script haben, mit dem ich sozusagen eine shell auf dem server aufrufen kann. kann mir einer sagen, wie ich das mit perl umsetzen kann?? mfg |
| | |
| | #2 (permalink) |
| Registriert seit: 07.12.01 ![]() Likes: 0 | Eine "richtige" Shell wirst du über das CGI so nicht hinkriegen weil HTTP packetswitched ist su kannst also nur immer Befehl absetzten Ausagbe empfangen und wieder von vorne. Und dann hast du da mehrere Möglichekeiten, zum einem, wenn es wirklich PERL-Code sein soll der verarbeitet wird mit eval($perl_code), das nimmt den PERL-Code (hier in $perl-code) entgegen und führt diesen aus (sofern er korrekt ist *g*). Rückgabewert von eval() ist, sofern benötigt, bei einem Fehler undef wobei in $@ auf die Fehlermeldung zugegriffen werden kann und wenn alles glatt ging liefert es den Wert des letzten Ausdrucks im gegebenen Code zurück. Um an die Shell des Systems zu kommen fallen mir 4 Möglichkeiten ein, zum ersten mal mit Pipes, dh. du öffnest ein Handle, so ähnlich wie für ein File nur mit ner Pipe als Moduszeichen und statt nem Dateinamen mit dem eines Programms (gff. mit Pfad wenn nicht in $PATH oder ein Shell interner Befehl), also ungefähr so, open($pipe_hnd, "|$command"). Du hast dann nen gewöhlichen Handle $pipe_hnd auf den du schreiben kannst, also dem $command was aufs STDIN schicken kannst und von dem du lesen kannst, also den STDOUT des Programms empfangen. Als nächstes wären da die Backticks, also Shell-like, $command_out = `$command`, führt ganz einfach $command aus (wie oben Programmename oder Pfad u. U. Shell interner Befehl, cd z. B.), das Ergebnis wird in dem o. g. Bsp. zusätzlich in $command_out aufgefangen, ist aber nicht nötig, wenn mans ned braucht einfach die Zuweisung weglassen. Dann wäre da system($command), das veranlasst wiederrum dass $command ausgeführt wird (auch hier wieder Programmname, Pfrad, Shellinterna) und der STDOUT von $command direkt auf den STDOUT von dem Skript kommt, also der Befehl "sichtbar" im Gegensatz zu den Backticks ausgeführt wird. Als 4. wäre da noch exec($command), das führt dazu, dass der Prozess des Skriptes durch den von $command ersetzt wird, d.h. exec() kehrt nie zurück und das Skript ist danach zu Ende, es erfolgt nur noch die Ausgabe von dem Programm in $command, was wiederum ein Programmname, ggf. mit Pfad oder ein Shellinterna sein darf. Allerdings möchte ich noch darauf hinweisen, dass du damit auf dem Server ein riesen Sicherheitloch schaffst, wenn du sowas wirklich einsetzten willst, eine "richtige" Shell z. B. mit SSH wäre wohl eher anzuraten, zumal du dir schon alleine wegen der fehlenden Interaktivität schnell in den Hintern beissen wirst, wnn du es erst mal geschafft hast, einen Prozess zu erzeugen, der aus was für Gründen auch immer nicht zurückkehrt und du in nem anderen Browserfenser mittels ps und kill den erst mal wieder abschiessen musst, weil du merkst, dass du ja kein Strg+C schicken kannst... |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 13.10.02 ![]() Likes: 0 | hi danke für deine antwort; werd es mal trotzdem ausprobieren; da der provider kein ssh anbietet. will ja auch nichts schlimmes drauf anstellen mfg honkman |
| | |
| | #4 (permalink) |
| Senior Member | Es geht nicht darum was du anstellen willst, sondern darum was andere unter Umständen anstellen würden... SSH wird auch nicht von deinem Provider angeboten sondern von deinem Server. Die Verbindung läuft dann über einen SSH-Client (Windows) bzw. eine Shell und ist verschlüsselt. Dafür brauchst du keine HP. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| wie erstelle ich eine Batchdatei mit linux | whoopy84 | Linux/UNIX | 3 | 30.09.09 16:21 |
| Shell Script Probleme | Serow | Linux/UNIX | 12 | 10.07.08 23:56 |
| Wie erstelle ich eine eigene Hompage? | Nicmon | (Web-) Design und webbasierte Sprachen | 27 | 30.05.06 20:56 |
| Wie erstelle ich eine Methoden-Datei [*.mbs] für den Picture Publisher? | PikJoker | Applikationen | 0 | 05.01.04 21:38 |
| Wie erstelle ich eine HP-WEBCAM (STREAM) | connect | (Web-) Design und webbasierte Sprachen | 3 | 14.11.03 21:44 |