Como inserir informações de login para um site a partir da linha de comando do linux

23

Minha conexão com a internet é fornecida pela universidade. Está protegido para uma combinação de nome de usuário / senha. Isso significa que, quando inicializo meu computador, tenho que iniciar um navegador da Web e abrir um site arbitrário. Então, sou redirecionado para uma página, que (entre outras coisas) contém duas formas. Nestes eu tenho que digitar o nome de usuário e senha. Consegui fazer isso com o firefox (que pode salvar a senha) e também com links (que carregam mais rápido e na linha de comando).

Existe alguma maneira de automatizar o processo de login usando um script bash? Isso permitiria fazer o login ao inicializar, para que ele já esteja lá quando eu iniciar o servidor X.

    
por Tim 04.09.2013 / 14:15

4 respostas

5

Eu finalmente encontrei uma maneira de fazer login automaticamente usando elinks . Funciona e é até fácil de configurar!

Duas opções precisam ser definidas. Isso pode ser feito adicionando as seguintes linhas em ~/.elinks/elinks.conf (se o arquivo não estiver lá, crie uma) ou alterando os valores nas respectivas posições na caixa de diálogo de opções dentro de elinks :

    # Save username and password for later use
set document.browse.forms.show_formhist = 1
    # Do not ask for confirmation before a form is submitted
set document.browse.forms.confirm_submit = 0

As etapas para um login automático com script são:

  • Defina essas duas opções
  • Abra a página de login em elinks , preencha os formulários e envie-os.
  • Escolha lembrar o nome e a senha para uso posterior.
  • Fechar elinks
  • Executar elinks -auto-submit http://somesite.com

O último comando deve realizar o login automático sem mais interação do usuário.

Na verdade, eu uso timeout 1m elinks -auto-submit http://somesite.com & , para que eu não tenha um processo elink inativo sendo executado em segundo plano o tempo todo.

    
por 25.09.2013 / 16:04
14

Você pode experimentá-lo com o curl , basta usar o curl como este para fazer login na página da web:

curl --user name:password http://somesite.com -v 

Você pode enviar dados para um site como esse da resposta Stackoverflow

    curl -b cookies.txt -c cookies.txt --data "Username=xx&Password=xx&Login=Login" [urlthatyour form submits]

você precisa de cookies se quiser fazer outra solicitação de onda depois de fazer o login. a identificação da sessão nos cookies ajudará na solicitação de última onda autorizada.

Se você não quer cookies, você pode usar

curl --data "Username=xx&Password=xx&Login=Login" [url that your form submits]

Você também pode consultar aqui para comandos especiais

    
por 04.09.2013 / 14:22
3

Uma maneira simples de criar scripts é com o Selênio .

Você pode usar o plug-in "Test Recorder" do Firefox para gravar um teste de login na rede e reproduzir o teste.

    
por 09.09.2013 / 22:01
0

Sim, há uma maneira muito simples de fazer login na internet da sua universidade. Você pode usar o Lynx 'navegador da web que é um navegador baseado em texto, projetado para uso no terminal. Então, aqui está o caminho:

$ echo "username=myname&password=mypassword" | lynx "url of the form" -post_data

onde,      ' nome de usuário ' é o nome do campo correspondente ao nome de usuário no formulário e ' senha ' é o nome do nome campo correspondente ao campo de senha e ' myname ' e ' mypassword ' são os valores correspondentes a serem preenchidos no formulário. Você pode encontrar o nome do campo usando 'Inspect Element' em qualquer navegador. Eu tentei com curl como indicado na resposta por BlueBerry - Vignesh4303 mas não funcionou.

    
por 15.03.2018 / 18:18