Schrift
[thread]11768[/thread]

Eine Login-Shell über ein Link aufmachen



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
rewal
 2008-05-07 11:30
#109325 #109325
User since
2007-11-26
8 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

habe folgendes Problemm: ich will über ein Link eine Login-Shell auf einem entfernten Host aufmachen. Ich habe das soweit mit "rsh" und "xterm" hinbekommen, aber ich habe folgendes Problemm: der Browser wartet bis "xterm"-Fenster zugemacht wird, und wenn es zu lange dauert bekommt der Browser ein Timeout. Wie kann ich eine Shell aufmachen, so dass der Browser nicht auf die Beendigung der Shell wartet, d.h. der CGI-Skript die HTML-Ausgabe sofort an den Browser sendet?

Viele Grüße
nepos
 2008-05-07 12:12
#109332 #109332
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, erklär das ganze doch bitte etwas genauer? Mir ist grade nicht ganz klar, was das mit Browser und CGI in Zusammenhang mit einer Login-Shell zu tun hat.
rewal
 2008-05-07 12:40
#109335 #109335
User since
2007-11-26
8 Artikel
BenutzerIn
[default_avatar]
Alles läuft nach folgendem Szenario ab:
es soll möglich Sein über Link in einer HTML-Seite eine Login-Shell auf einem Linux-Host aufzumachen. Über unterschiedliche Links kann ich mich als anderer Benutzer einlogen. Das mache ich alles mit einem CGI-Skript was auf auf dem Web-Server ein "rsh -l <user> <host> xterm -ls -display <user_machine>:0.0" ausführt und eine leere HTML-Seite mit einem Redirect zu der vorherigen Seite zurückgibt. Das Problemm liegt aber darin, dass wenn ich auf so einem Wege eine Login-Shell aufmache, wartet der Browser auf die beendigung des CGI-Skriptes und ich keine HTML-Ausgaben des Skriptes bekomme.
renee
 2008-05-07 12:48
#109337 #109337
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schon versucht, den Prozess mit einem & abzukoppeln?

Code: (dl )
system( "befehl &" );
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
rewal
 2008-05-07 12:50
#109338 #109338
User since
2007-11-26
8 Artikel
BenutzerIn
[default_avatar]
Ja.
Ich mache das sogar zweistuffig: rsh wird auf dem Web-Server gestartet und ruft ein Skript auf dem Ziel-Host auf. Dieser Skript enthält dann sowas wie "xterm -ls ...". Funktioniert leider auch nicht.
moritz
 2008-05-07 13:07
#109339 #109339
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
xterm braucht ja auch irgendwie einen laufenden X-Server, auf den es zugreifen kann. Das hat man üblicherweise nicht, wenn man per rsh oder ssh auf einen entfernten Rechner geht. Tatsächlich kann der Webserver auch gar nichts mit einem Fenster anfangen - was sollte er denn mit dem Fenster tun?

Der arme Webserver hat ja noch nicht mal ne Maus, mit der er rumklicken kann!
rewal
 2008-05-07 13:23
#109342 #109342
User since
2007-11-26
8 Artikel
BenutzerIn
[default_avatar]
X-Server läuft auf dem selben Rechner wie der Browser. Wie gesagt das funktioniert alles wunderbar, bis auf die Tatsache das der CGI-Skript und somit auch der Browser immer auf das Beenden des "rsh ..." kommandos wartet. Übrigens wird "rsh ..." mit system() aufgerufen.
moritz
 2008-05-07 13:29
#109343 #109343
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
rewal+2008-05-07 11:23:16--
X-Server läuft auf dem selben Rechner wie der Browser.


Und wie kommunzieren der Client-Rechner (also der, auf dem der Browser läuft) und das xterm? Über HTTP? Das kann doch erst mal von Haus aus kein X transportieren, oder?

Irgendwie kapiere ich nicht, wie du den Sprung zwischen X und HTTP/CGI hinbekommst - könntest du mir da mal ein Code-Beispiel zeigen? Ich dachte immer, dass das gar nicht geht.
rewal
 2008-05-07 13:38
#109344 #109344
User since
2007-11-26
8 Artikel
BenutzerIn
[default_avatar]
Na das läuft ja wie gesagt über ein CGI-Skript das auf dem Web-Server so was wie "rsh -l <user> <remote_host> <skript_on_remote_host> <x_server_ip_address>" aufruft. Der Skript auf dem <remote_host> ruft "xterm -ls -display <x_server_ip_address>:0.0" auf. Damit bekommst du eine Login-Shell auf deinem Monitor;-)
nepos
 2008-05-07 13:44
#109345 #109345
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
@moritz: Das mit dem xterm is kein Problem, da nur für die Anzeige der X-Server da sein muss und wo dieser zu finden ist mittels der DISPLAY-Umgebungsvariable oder eben dem von rewal benutzen Kommandozeilenschalter gemacht wird.

@rewal: könnte man in dem CGI den Part, der das xterm öffnet nicht einfach wegforken? Das Child erledigt den Remote-Login + Xterm und der Parent das mit der Antwortseite im Browser.
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2008-05-07 11:30.