Sim, em geral, o arquivo .netrc
deve funcionar como você descreveu. Ele pode estar sendo bloqueado pelo seu cliente de FTP não suportado (talvez tenha sido explicitamente construído sem esse recurso ativado). Isso provavelmente seria feito já que esse método de armazenar nomes de usuário / senhas é inerentemente inseguro e provavelmente não deveria ser usado.
Verificação com strace
Você sempre pode confirmar o que um aplicativo está fazendo rastreando-o usando a ferramenta de linha de comando, strace
.
$ strace -s 2000 -o ftp.log ftp m
Depois de fazer isso, você pode analisar o arquivo de log, ftp.log
, para ver se o seu ftp
client está tentando ler o arquivo .netrc
. Se estiver funcionando corretamente, você verá esse tipo de saída no log.
setsockopt(3, SOL_SOCKET, SO_OOBINLINE, [1], 4) = 0
open("/home/saml/.netrc", O_RDONLY) = 4
uname({sys="Linux", node="greeneggs.bubba.net", ...}) = 0
fstat(4, {st_mode=S_IFREG|0600, st_size=47, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4898b85000
read(4, "machine ftp.somedom.org\n\tlogin sam\n\tpassword blah\n", 4096) = 47
fstat(4, {st_mode=S_IFREG|0600, st_size=47, ...}) = 0
read(4, "", 4096) = 0
close(4) = 0
OBSERVAÇÃO: No exemplo acima, estou conectando a ftp.somedom.org
como usuário "sam" usando a senha "blah". Você pode ver que leu meu arquivo .netrc
.
página man do ftp
Se você der uma olhada na página ftp
man, há essa opção mencionada na minha versão:
-n Restrains ftp from attempting “auto-login” upon initial connection.
If auto-login is enabled, ftp will check the .netrc (see netrc(5))
file in the user's home directory for an entry describing an account
on the remote machine. If no entry exists, ftp will prompt for the
remote machine login name (default is the user identity on the local
machine), and, if necessary, prompt for a password and an account
with which to login.
open host [port]
Establish a connection to the specified host FTP server. An optional
port number may be supplied, in which case, ftp will attempt to
contact an FTP server at that port. If the auto-login option is on
(default), ftp will also attempt to automatically log the user in to
the FTP server (see below).
Eu estou no Fedora 19:
$ rpm -qi ftp
Name : ftp
Version : 0.17
Release : 64.fc19
Architecture: x86_64