O ambiente de trabalho K

4.5. Script de Login

Editar Script

Use esta janela de diálogo para escrever um script de conexão ao seu provedor. Utilize o mini-terminal e as informações fornecidas pelo seu provedor Internet para entender em que seqüência as ações devem ser executadas.

  • Expect: o Kppp esperará pela recepção do texto especificado;

  • Send: o Kppp transmitirá o texto especificado;

  • Scan: o Kppp varrerá os dados recebidos à procura do texto especificado, e irá armazenar todos os caracteres depois desse texto até o fim da linha num buffer interno. Espaços em branco iniciais e finais serão desprezados;

  • Save: gravar o texto previamente varrido no registro espcificado. Por enquanto, o único registro chama-se 'password';

  • Pause: fazer uma pausa pelo número especificado de segundos;

  • Hangup: o Kppp fará o modem desconectar;

  • Answer: o Kppp fará o modem esperar por ligações externas;

  • Timeout: muda o timeout (tempo máximo de espera) padrão para o número de segundos especificado durante a execução do script. Você pode mudar o timeout várias vezes durante a execução de um script, se for necessário;

  • Prompt: Pede ao usuário do Kppp para digitar um texto, e fornece o texto especificado como dica. As letras vão aparecendo à medida em que são digitadas. Se o texto especificado inclui dois sustenidos (##), eles serão substituídos pelo buffer de varredura;

  • PWPrompt: Pede ao usuário que digite um texto, e mostra o texto especificado como dica. Um asterisco será mostrado para cada caractere digitado, o que torna esse recurso ideal para digitação de senhas;

  • ID: Se o campo ID (identificação) da janela principal do Kppp estiver preenchido, este comando manda o ID. Se o campo não estiver preenchido, pede ao usuário que digite um ID, e mostra o texto especificado como dica. O usuário verá o que digita. Num segundo passo, como por exemplo na segunda tentativa de login, o sistema pede ao usuário que digite o ID independentemente do campo ID da janela principal;

  • Password: Se o campo 'senha' da janela principal do Kppp estiver preenchido, manda aquela senha. Se não estiver preenchido, o sistema pede que o usuário digite a senha, e mostra o texto especificado como dica. Um asterisco será impresso para cada caractere digitado. Num segundo passo, como por exemplo na segunda tentativa de login, o Kppp pede ao usuário que digite a senha independente do campo 'senha' da janela principal estar ou não preenchido;

  • LoopStart: o Kppp aguardará pelo texto especificado. Ele armazenará este texto pois será usado por LoopEnd.

  • LoopEnd: o Kppp aguardará pelo texto especificado para sair do ciclo. Se o texto especificado por LoopStart for recebido primeiro, a primeira linha de comando após LoopStart assumirá o comando do script. Isso permite a repetição de digitação de nome/senha em caso de erro na primeira tentativa.

4.5.1. Scripts de exemplo

Este é um script bem simples que eu poderia usar para conectar-me ao meu provedor Internet:

 Expect      ID:                        # aguarda por ID:
 Send        acme                       # Coloque sua ID aqui em lugar de acme
 Expect      word:                      # aguarda por 'password'
 Send        4u3fjkl                    # manda minha senha '4u3fjkl'
 Expect      aceito                     # meu provedor aceitou a conexão
 Send        ppp                        # Inicia o PPP do lado do provedor

Eis um script para a mesma conta, mas com digitação manual de identificação e senha. Este script solicitará a digitação do ID e da senha a cada conexão, não importa se os campos ID e senha estão preenchidos na janela principal do Kppp. Este script também ilutra o uso da estrutura LoopStart/LoopEnd. Se alguma coisa der errado durante o procedimento de login, por exemplo se eu digitar a senha errada, meu provedor Internet mandará uma mensagem de erro e reiniciará o ciclo de identificação/senha ao mostrar o texto "ID:" novamente. Se o texto "ID:" for detectado antes do comando LoopEnd, Kppp recomeçará a executar o script desde o comando LoopStart.

 LoopStart   ID:                        # Aguarda pelo texto 'ID:'
 Prompt      Enter ID:                  # Pede que eu digite o ID, e transmite
 Expect      word:                      # aguarda pelo texto 'password'
 PWPrompt    Digite Password:           # Pede que eu digite a senha, e transmite
 LoopEnd     Aceito                     # O provedor deu sinal verde
 Send        ppp                        # Inicia uma conexão PPP para mim

Aqui vai o script que eu realmente uso para conectar com meu provedor: este script pede a identificação e a senha somente se eles não estiverem preenchidos nos respectivos campos da janela principal do Kppp.

 LoopStart   ID:                        # aguarda pelo texto 'ID:'
 ID          Digite ID:                 # Pede-me o ID e transmite
 Expect      word:                      # aguarda pelo texto 'password'
 Password    Digite senha               # Pede-me a senha e transmite
 LoopEnd     aceito                     # O provedor aceitou a senha
 Send        ppp                        # Inicia minha conexão PPP na
                                        # máquina do provedor

Eis um script que eu uso para conectar com um provedor Internet, que usa um esquema de autenticação de desafio/resposta. Normalmente você ganha um dispositivo de hardware (um cartão com um display e teclas numéricas) de seu provedor. Você precisa saber a senha para usar o dispositivo. Depois de ter discado, o provedor mostra o texto de desafio. Você digita esse desafio em seu dispositivo e recebe uma senha como resposta. Então você deve digitar essa senha.

 LoopStart   ID:                        # Aguarda pelo texto "ID:"
 ID          Digite ID:                 # Pede que eu digite o ID e transmite-o
 Scan        Desafio:                   # Varre 'Desafio:' e guarda o que vem 
                                        # depois dele até o fim da linha;
 Expect      Senha:                     # Aguarda pelo texto 'Senha:'
 Prompt      seu desafio é ## - Digite Senha
                                        # Pede que eu digite a senha, e transmite
 LoopEnd     concedido                  # O provedor dá sinal verde
 Send        ppp                        # Inicia a conexão PPP no lado do
                                        # provedor

A listagem a seguir mostra o procedimento de login de um provedor Internet fictício, que fornece uma nova senha a cada login. A nova senha precisa ser verificada e guardada para a próxima sessão.

 Universidade de Gomorra
 
 Login: satiro
 Password: 
 A senha para sua próxima sessao é: YLeLfkZb
 Por favor anote-a e digite para verificacao.
 Verificação:YLeLfkZb
 
 1 = telnet
 2 = SLIP
 3 = PPP
 
 Sua escolha:

Kppp pode ser usado para fazer o trabalho tedioso por você, e elimina o risco de perder aquele pequeno pedaço de papel onde está escrita a sua senha atual. A parte chave do script a seguir é uma combinação das palavras-chave Scan e Save.
 Expect      Login:                     # aguarda pelo texto "Login:"
 ID                                     # transmite a identificação
 Expect      Password:                  # aguarda pelo texto "Password:"
 Password                               # transmite a senha
 Scan        é:                         # aguarda por '... proxima sessao é:' e
                                        # guarda a próxima senha
 Save        password                   # grava a nova senha para usar depois
 Expect      Verificacao:               # aguarda o texto 'Verification:'
 Password                               # manda nova senha
 Expect      escolha:                   # aguarde por um prompt de escolha
                                        # entre várias opções (telnet, SLIP, PPP)
 Send        3                          # escolhe a opção 3, que é o PPP