Das K Desktop Environment

4.5. Login-Skript

Skript bearbeiten

Mit diesem Dialog knnen Sie ein Einwahlskript fr Ihren ISP erstellen. Benutzen Sie das Mini-Terminal und die Informationen von Ihrem ISP, um herauszufinden, welche Reihenfolge von Aktionen ausgefhrt werden mu.

  • Expect: Kppp wartet auf den Empfang der angegebenen Zeichenfolge.

  • Send: Kppp sendet die angegebene Zeichenfolge.

  • Scan: Kppp durchsucht die eingehenden Daten nach der gegebenen Zeichenfolge und speichert die darauffolgenden Zeichen bis zum nchsten Zeilenumbruch in einem internen Puffer. Leerzeichen am Anfang und Ende der gespeicherten Zeichenfolge werden entfernt.

  • Save: speichert den vorher mit 'Scan' gesuchten String permanent im angegebenen Register. Das einzige gltige Register ist bisher 'password'.

  • Pause: Die angegebene Anzahl Sekunden warten.

  • Hangup: Kppp sendet den Aufhngen-Befehl an das Modem.

  • Answer: Kppp versetzt das Modem in den Antwort-Modus.

  • Timeout: ndert die Standard-Zeitberschreitung auf die angegebene Anzahl Sekunden dynamisch whrend der Skript-Ausfhrung. Sie knnen dies whrend der Skriptausfhrung mehrmals tun, falls ntig.

  • Prompt: Bittet den Kppp-Benutzer, eine Zeichenkette einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Der Benutzer sieht dabei, was er eingibt. Wenn die angegebene Zeichenfolge die Marke enthlt, wird diese durch den Inhalt des internen Puffers ersetzt.

  • PWPrompt: Bittet den Kppp-Benutzer, eine Zeichenkette einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Der Benutzer sieht ein Sternchen fr jedes eingegebene Zeichen.

  • ID: Falls das Benutzername-Feld in Kppp's-Hauptfenster ausgefllt ist, wird dieser Benutzername gesendet. Falls das Benutzername-Feld nicht ausgefllt ist, wird der Kppp-Benutzer nach seinem Benutzernamen gefragt, mit der angegebenen Zeichenfolge als Hinweis. Der Benutzer sieht, was er eingibt. Bei einem zweiten Aufruf, zum Beispiel aus einer Schleife, wird eine Eingabe gefordert mit der angegebenen Zeichenfolge als Hinweis.

  • Password: Wenn das Pawort-Feld in Kppp's-Hauptfenster ausgefllt ist, wird dieses gesendet. Falls nicht, wird der Kppp-Benutzer aufgefordert, ein Pawort einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Es wird ein Sternchen fr jedes eingegebene Zeichen ausgegeben. Bei einem zweiten Aufruf, zum Beispiel aus einer Schleife, wird eine Eingabe gefordert mit der angegebenen Zeichenfolge als Hinweis.

  • LoopStart: Kppp wartet auf den Empfang der angegebenen Zeichenkette. Die Zeichenkette wird gespeichert fr die Nutzung durch LoopEnd

  • LoopEnd: Kppp wartet auf den Empfang der angegebenen Zeichenkette und beendet die Schleife. Falls die Zeichenkette vom entsprechenden LoopStart zuerst empfangen wird, wird ein Sprung in die Zeile nach LoopStart vorgenommen, was eine Wiederholung von Benutzernamen/Pawort-Dialogen ermglicht.

4.5.1. Beispielskripte

Hier ist ein einfaches Skript, das ich zur Verbindung zu meinem ISP verwenden knnte:

 Expect      ID:           # auf 'ID:' warten
 Send        myid          # Sie mssen 'myid' durch Ihren Benutzernamen ersetzen
 Expect      word:         # warte auf 'password'
 Send        4u3fjkl       # sendet mein Pawort '4u3fjkl'
 Expect      granted       # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp           # Das startet eine PPP-Verbindung fr mich
                           # auf Seiten des ISPs.

Hier ist ein Skript fr den selben Zugang mit Benutzername- und Pawort-Abfrage: Dieses Skript fragt jedes Mal nach Benutzername und Pawort, egal was im Benutzername- und Pawort-Feld in Kppp's Hauptdialog eingegeben wurde. Dieses Skript zeigt auch die Benutzung der LoopStart/LoopEnd-Struktur. Falls whrend des Anmeldevorgangs etwas schiefgeht, ich zum Beispiel das Pawort falsch eingegeben habe, gibt mein ISP eine Fehlermeldung aus und beginnt die ID/Pawort-Schleife erneut, indem er die Zeichenkette ``ID:'' erneut sendet. Falls die Zeichenkette ``ID:'' vor der Abarbeitung von LoopEnd empfangen wird, startet Kppp das Skript erneut nach dem LoopStart-Befehl.

 LoopStart   ID:                        # wartet auf 'ID:'
 Prompt      Benutzername eingeben:     # fragt nach meinem Benutzernamen und sendet ihn.
 Expect      word:                      # wartet auf 'password'
 PWPrompt    Pawort eingeben:          # fragt mich nach meinem Pawort und sendet es.
 LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp                        # Das startet eine PPP-Verbindung fr mich

Hier ist das Skript, das ich zur Verbindung zu meinem ISP nutze: Dieses Skript fragt nur nach Benutzernamen und Pawort, falls sie nicht in den entsprechenden Feldern in Kppp's Hauptdialog eingegeben wurden.

 LoopStart   ID:                        # wartet auf 'ID:'
 ID          Benutzername eingeben:     # fragt nach meinem Benutzernamen und sendet ihn.
 Expect      word:                      # wartet auf 'password'
 Password    Pawort eingeben:          # fragt mich nach meinem Pawort und sendet es.
 LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp                        # Das startet eine PPP-Verbindung fr mich
                                        # auf Seiten des ISPs.

Hier ist das Skript, das ich zur Verbindung mit einem ISP benutze, der eine Art Forderung/Antwort Authentifizierung benutzt. Normalerweise erhlt man dazu eine Hardware-Ausrstung (eine kleine Karte mit einem Display und einer Taschenrechnerhnlichen Tastatur) von seinem ISP. Sie mssen ein Pawort kennen, um dieses Gert nutzen zu knnen. Nach der Einwahl zeigt der ISP die Forderung an. Sie mssen diese in Ihr Gert eingeben und erhalten als Antwort ein dynamisches Pawort. Dieses mssen Sie dann an den ISP zurcksenden.

 LoopStart   ID:                        # wartet auf 'ID:'
 ID          Enter ID:                  # fragt mich nach meiner ID und sendet sie
 Scan        Challenge:                 #  Wartet auf 'Challenge' und speichert alles dahinter bis zum nchsten Zeilenumbruch.
 Expect      Password:                  # warte auf 'password'
 Prompt      Your token is ## - Enter Password  # fragt mich nach meinen Pawort und sendet es.
 LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp                        # Das startet eine PPP-Verbindung fr mich
                                        # auf Seiten des ISPs.

Das folgende Log zeigt die Anmeldeprozedur eines fiktiven ISP, der bei jeder Anmeldung ein neues Pawort vergibt. Das neue Pawort mu berprft und fr die nchste Anmeldung gespeichert werden.

 Universitt von Lummerland
 
 Login:mylogin
 Password: 
 Das Passwort fuer Ihre naechste Anmeldung ist: YLeLfkZb
 Bitte speichern Sie es und geben Sie es zur Ueberpruefung ein.
 Ueberpruefung:YLeLfkZb
 
 1 = telnet
 2 = SLIP
 3 = PPP
 
 Ihre Wahl:

Kppp kann dazu benutzt werden, diese Aufgabe fr Sie zu bernehmen (und schaltet dabei das Risiko aus, da Sie das kleine Blatt Papier, auf dem Ihr derzeitiges Pawort steht, verlieren). Der wichtigste Teil des folgenden Skripts ist die Kombination des Scan/Save Teils.
 Expect      Login:                     # warte auf Login Prompt
 ID                                     # sende ID
 Expect      Password:                  # warte auf Pawort Prompt
 Password                               # sende password
 Scan        ist:                       # warte auf '... naechste Anmeldung ist:' und
                                        # scanne das folgende Pawort
 Save        password                   # speichere das neue Pawort fr nchste Anmeldung
 Expect      Verification:              # warte auf 'Ueberpruefung:'
 Password                               # sende neues Pawort
 Expect      choice:                    # warte auf Prompt, bei dem Sie zwischen verschiedenen
                                        # Optionen (telnet, SLIP, PPP) whlen knnen
 Send        3                          # whle Option 3, PPP