Estou tentando escrever um script que salva as credenciais em um arquivo .netrc e, em seguida, lê o arquivo para passá-las para um comando curl e salva o arquivo de cookie retornado para uso futuro. Estou interessado se esta é uma maneira segura de passar o nome de usuário e a senha e se houver um homem no meio do ataque, eles seriam capazes de farejar as credenciais se o servidor que estou tentando acessar for HTTP.
#!/bin/bash
IP="192.168.0.1"
user="Administrator"
pass="Password1234"
function credentials {
mkdir "${HOME}"/.netrc
rm "${HOME}"/.netrc/credentials.txt
touch "${HOME}"/.netrc/credentials.txt
{ echo "machine ${IP}"; echo "login ${user}"; echo "password ${pass}"; } >> "${HOME}"/.netrc/credentials.txt
chmod 600 "${HOME}"/.netrc/credentials.txt
}
function cookie {
curl -v -c cookie.txt -n "${HOME}"/.netrc/credentials.txt http://"${IP}"/setup.php
}
credentials
cookie
Eu verifiquei e o arquivo credenciais.txt está salvo corretamente no diretório correspondente e as credenciais têm as permissões corretas, mas quando tento executar a função de cookie, recebo o seguinte erro: Couldn't find host 192.168.0.1 in the .netrc file; using defaults
. Por que o curl não consegue buscar o nome de usuário e a senha configurados no arquivo credencial.txt?
Pelo que entendi da página man (do curl), a opção
-n
apenas permite procurar um.netrc
arquivo, mas não espera o caminho do arquivo desse arquivo. Esta é a opção--netrc-file
. Na página de manual: