The K Desktop Environment

4.5. Prijavna skripta

Uredi skript

Uporabite to pogovorno okno, da sestavite klicno skripto za klicno povezavo z vašim ISP-jem. Uporabite mini-terminal in informacije pridobljene od vašega ISP-ja, da boste razumeli katera zaporedja akcij so potrebna za izvršitev.

  • Expect: kppp bo čakal na določen niz, ki ga mora prejeti.

  • Send: kppp bo poslal določen niz.

  • Scan: kppp bo pregledoval vhodni tok za določenim nizom in shranil katerikoli znak po nizu do prve nove vrstice v internem medpomnilinku. Zadnji in vodilni presledek bosta odrezana.

  • Save: trajno shraniti prej pregledn niz v določen register. Do sedaj je edini veljaven register 'password'.

  • Pause: naredi odmor za določen časovni interval v sekundah

  • Hangup: kppp bo poslal modemu ukaz za prekinitev(obesiti modem)

  • Answer: kppp bo postavil modem v način za odgovarjanje

  • Timeout: dinamično spremeni privzeti čas odmora na določeno časovno vrednost v sekundah med izvrševanjem skripte. Če je potrebno, lahko med izvrševanjem večkrat spremenite čas odmora.

  • Prompt: kppp namigne uporabniku z določenim nizom, naj vnese določen niz. Uporabnik bo videl kaj je vtipkano. Če določen niz vključuje oznako ## bo oznaka zamenjana s trenutno vsebino pregledanega intrenega medpomnilnika.

  • PWPrompt: kppp namigne uporabniku z določenim nizom, naj vnese določen niz. Za vsak vtipkan znak bo prikazana zvezdica.

  • ID: če je ID polje na kppp-jevem glavnem pogovornem oknu zapolnjeno, pošlji ta ID. Če ID polje ni zapolnjeno, kppp namigne uporabniku z določenim nizom, naj vnese ID. Uporabnik bo videl kaj je vtipkano. Ob drugem prehodu, kot v primeru zanke se bo ob drugi ponovitvi, prikazalo okno in vam namignilo določeni niz.

  • Password: Če je polje password na glavnem kppp pogovornem oknu zapolnjeno, pošlje to geslo. Če polje password ni zapolnjeno, kppp namigne uporabniku z določenim nizom, naj vnese geslo. Za vsak vtipkan znak bo prikazana zvezdica. Ob drugem prehodu, kot v primeru zanke se bo ob drugi ponovitvi, prikazalo okno in vam namignilo z določenim nizom.

  • LoopStart: kppp bo čakal na določen niz, ki ga mora prejeti. Niz bo shranil za uporabo pri LoopEnd

  • LoopEnd: kppp bo čakal na določen niz, ki ga mora prejeti, da zapusti zanko. Če najprej prejme niz od primernega LoopStart, bo sprožil skok na vrstico po LoopStart delu in s tem omogočil ponovitev username/password sloga na pare pogovornih oken.

4.5.1. Primeri skript

Tukaj je preprosta skripta, ki jo lahko uporabljam za povezavo z mojim ISP-jem:

 Expect      ID:                        # čakaj na ID:
 Send        myid                       # myid morate zamenjati z vašim id
 Expect      word:                      # čakaj na 'password'
 Send        4u3fjkl                    # pošlji moje geslo '4u3fjkl'
 Expect      granted                    # Moj ISP pošlje 'Permission granted' ob uspešni prijavi.
 Send        ppp                        # To zažene ppp povezavo za
                                        # mene na ISP-jevi strani.

Tukaj je skripta za enak račun z ID in zahtevo gesla: Ta skripta vas bo vsakič vprašala za ID in geslo, ne glede na to, kaj je vpisano v poljih ID in geslo v kppp-jevem glavnem pogovornem oknu. Ta skripta prikaže tudi uporabo strukture LoopStart/LoopEnd. Če gre med prijavnim postopkom kaj narobe, na primer, če napačno vpišem geslo, bo moj ISP izpisal obvestilo o napaki in ponovno zagnal id/password zanko s ponovnim izpisom niza "ID:". Če je niz "ID" zaznan preden je bila LoopEnd ključna beseda razčlenjena, bo kppp ponovno zagnal skripto po LoopStart ključni besedi.

 LoopStart   ID:                        # čakaj na ID:
 Prompt      Enter ID:                  # Vprašaj me za moj ID in ga odpošlji.
 Expect      word:                      # čakaj na 'password'
 PWPrompt    Enter Password:            # Vprašaj me za moje geslo in je odpošlji.
 LoopEnd     granted                    # Moj ISP pošlje 'Permission granted' ob uspešni prijavi.
 Send        ppp                        # To zažene ppp povezavo za mene

Tukaj je skripta, ki jo trenutno uporabljam za povezovanje z mojim ISP-jem: Ta skripta bo vprašala za ID in geslo samo če nisem izpolnil primerna polja v kppp-jevem glavnem pogovornem oknu.

 LoopStart   ID:                        # čakaj na ID:
 ID          Enter ID:                  # Vprašaj me za moj ID in ga odpošlji.
 Expect      word:                      # čakaj na 'password'
 Password    Enter Password             # Vprašaj me za moje geslo in je odpošlji.
 LoopEnd     granted                    # Moj ISP pošlje 'Permission granted' ob uspešni prijavi.
 Send        ppp                        # To zažene ppp povezavo za mene
                                        # na ISP-jevi strani

Tukaj je skripta, ki jo uporabljam za povezovanje z ISP-jem, ki uporablja neko vrsto pozivno/odgovorne identifikacije. Ponavadi dobite strojni izkaz (hardware token) (pametno katrico z zaslonom in kalkulatorjem kot je keypad) od vašega ISP-ja. Tukaj morate vedeti geslo, da lahko uporabljate izkaz. Ko kličete, vam vaš ISP prikaže poziv. Na poziv morate odgovoriti z vašim izkazom in pridobiti dinamično geslo kot odgovor. Potem morate vnesti to geslo.

 LoopStart   ID:                        # čakaj na ID:
 ID          Enter ID:                  # Vprašaj me za moj ID in ga odpošlji.
 Scan        Challenge:                 # Preglej za 'Poziv' in shrani vse za tem do naslednje nove vrstice.
 Expect      Password:                  # čakaj na 'password'
 Prompt      Your token is ## - vnesite geslo  # Vprašaj me za moje geslo in je odpošlji.
 LoopEnd     granted                    # Moj ISP pošlje 'Permission granted' ob uspešni prijavi.
 Send        ppp                        # To zažene ppp povezavo za mene
                                        # na ISP-jevi strani

Naslednji dnevnik prikazuje prijavno proceduro izmišljenega ISP-ja, ki določi novo geslo ob vsaki prijavi. Novo geslo mora biti preverjeno in shranjeno za naslednjo sejo.

 University of Lummerland
 
 Login:mylogin
 Password:
 The password for your next session is: YLeLfkZb
 Please record and enter it for verification.
 Verification:YLeLfkZb
 
 1 = telnet
 2 = SLIP
 3 = PPP
 
 Your choice:

kppp se lahko uporablja, da naredi tista nadležna opravila za vas (izniči tveganje za izgubo tistega majhnega papirja, na katerem je vaše geslo). Ključni del naslednje skripte je kombinacija Scan/Save ključnih besed:
 Expect      Login:                     # čakaj na vprašanje za prijavo
 ID                                     # pošlji ID
 Expect      Password:                  # čakaj na vprašanje za geslo
 Password                               # pošlji geslo
 Scan        is:                        # čakaj na '... next session is:' in
                                        # preglej predhodno geslo
 Save        password                   # shrani novo geslo za naslednjo prijavo
 Expect      Verification:              # čakaj na 'Verification:'
 Password                               # pošlji novo geslo
 Expect      choice:                    # čakaj na vrstico, ki vam omogoča izbiro
                                        # med različnimi možnostimi (telnet, SLIP, PPP)
 Send        3                          # izberite tretjo možnost, npr. PPP