Das K Desktop Environment

4.5. Login-Skript

Skript bearbeiten

Mit diesem Dialog können Sie ein Einwahlskript für Ihren ISP erstellen. Benutzen Sie das Mini-Terminal und die Informationen von Ihrem ISP, um herauszufinden, welche Reihenfolge von Aktionen ausgeführt werden muss.

  • 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 nächsten 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 gültige Register ist bisher 'password'.

  • Pause: Die angegebene Anzahl Sekunden warten.

  • Hangup: Kppp sendet den Aufhängen-Befehl an das Modem.

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

  • Timeout: Ändert die Standard-Zeitüberschreitung auf die angegebene Anzahl Sekunden dynamisch während der Skript-Ausführung. Sie können dies während der Skriptausführung mehrmals tun, falls nötig.

  • 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 ## enthält, 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 für jedes eingegebene Zeichen.

  • ID: Falls das Benutzername-Feld in Kppp's-Hauptfenster ausgefüllt ist, wird dieser Benutzername gesendet. Falls das Benutzername-Feld nicht ausgefüllt 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 Passwort-Feld in Kppp's-Hauptfenster ausgefüllt ist, wird dieses gesendet. Falls nicht, wird der Kppp-Benutzer aufgefordert, ein Passwort einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Es wird ein Sternchen für 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 für 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/Passwort-Dialogen ermöglicht.

4.5.1. Beispielskripte

Hier ist ein einfaches Skript, das ich zur Verbindung zu meinem ISP verwenden könnte:

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

Hier ist ein Skript für den selben Zugang mit Benutzername- und Passwort-Abfrage: Dieses Skript fragt jedes Mal nach Benutzername und Passwort, egal was im Benutzername- und Passwort-Feld in Kppp's Hauptdialog eingegeben wurde. Dieses Skript zeigt auch die Benutzung der LoopStart/LoopEnd-Struktur. Falls während des Anmeldevorgangs etwas schiefgeht, ich zum Beispiel das Passwort falsch eingegeben habe, gibt mein ISP eine Fehlermeldung aus und beginnt die ID/Passwort-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    Passwort eingeben:          # fragt mich nach meinem Passwort und sendet es.
 LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp                        # Das startet eine PPP-Verbindung für mich

Hier ist das Skript, das ich zur Verbindung zu meinem ISP nutze: Dieses Skript fragt nur nach Benutzernamen und Passwort, 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    Passwort eingeben:          # fragt mich nach meinem Passwort und sendet es.
 LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp                        # Das startet eine PPP-Verbindung für 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 erhält man dazu eine Hardware-Ausrüstung (eine kleine Karte mit einem Display und einer Taschenrechnerähnlichen Tastatur) von seinem ISP. Sie müssen ein Passwort kennen, um dieses Gerät nutzen zu können. Nach der Einwahl zeigt der ISP die Forderung an. Sie müssen diese in Ihr Gerät eingeben und erhalten als Antwort ein dynamisches Passwort. Dieses müssen Sie dann an den ISP zurücksenden.

 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 nächsten Zeilenumbruch.
 Expect      Password:                  # warte auf 'password'
 Prompt      Your token is ## - Enter Password  # fragt mich nach meinen Passwort und sendet es.
 LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
 Send        ppp                        # Das startet eine PPP-Verbindung für mich
                                        # auf Seiten des ISPs.

Das folgende Log zeigt die Anmeldeprozedur eines fiktiven ISP, der bei jeder Anmeldung ein neues Passwort vergibt. Das neue Passwort muss überprüft und für die nächste Anmeldung gespeichert werden.

 Universität 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 für Sie zu übernehmen (und schaltet dabei das Risiko aus, dass Sie das kleine Blatt Papier, auf dem Ihr derzeitiges Passwort 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 Passwort-Prompt
 Password                               # sende password
 Scan        ist:                       # warte auf '... naechste Anmeldung ist:' und
                                        # scanne das folgende Passwort
 Save        password                   # speichere das neue Passwort für nächste Anmeldung
 Expect      Verification:              # warte auf 'Ueberpruefung:'
 Password                               # sende neues Passwort
 Expect      choice:                    # warte auf Prompt, bei dem Sie zwischen verschiedenen
                                        # Optionen (telnet, SLIP, PPP) wählen können
 Send        3                          # wähle Option 3, PPP