Esperar que o script não envie a senha como planejado [fechado]

2

Eu tentei ler sobre isso, mas não consigo entender por que isso está acontecendo.

Quando a opção Espera envia a senha, ela aparece como um texto não criptografado no terminal e depois "Desculpe, tente novamente". aparece.

O script é o seguinte

#!/usr/bin/expect -f

spawn bash
send -- "sudo (many tasks)\r"
expect -exact "\[sudo\] password for elade: "
send -- "password\r"
expect -exact "[email protected]'s password: "
send -- "password\r"
expect "@"
send -- "echo Done; sleep 1; exit\r"
expect eof

A saída do terminal após o envio da primeira senha é:

[sudo] password for elade:
password
Sorry, try again.

Estou usando o Arch linux e o emulador de terminal Konsole.

    
por E. l4d3 17.04.2017 / 17:04

1 resposta

2

Obrigado por todas as entradas acima. Depois de tentar todas as sugestões, o script original de repente começou a funcionar novamente. Quando solicitada a senha, e a senha foi enviada pelo expect, ela não apareceu no terminal como antes e foi rejeitada, foi passada de forma invisível para o terminal e aceita, como se eu estivesse digitando eu mesmo.

Então eu executei o script algumas vezes e 1/10 vezes o mesmo problema persistiu. Existem três senhas diferentes que precisam ser enviadas, e qual delas "passa" e qual delas é "ecoada" no terminal e rejeitada parece aleatória. Não sei por que isso está acontecendo, mas suspeito que tenha pouco a ver com o Expect e o roteiro real.

    
por 20.04.2017 / 10:56