Ftp
我只需要包含一個 .netrc 文件就可以讓 UNIX 拾取它嗎?
我在 OSX 上使用 bash 終端的目錄中有一個具有以下格式的 .netrc:
machine m... login l... password p...
按照此幫助文件中的建議,我已經像這樣對文件進行了chown和cmoded
$ chown myusername .netrc $ chmod +600 .netrc
當我在目錄中時,我發出以下命令:
$ftp m...
根據本教程(請參閱“.netrc 的使用”部分),似乎 unix 應該在我鍵入時自動檢測目錄中是否存在 .netrc 文件
ftp m..
,請參閱 .netrc 為 machine 提供憑據。並將它們傳遞給ftp。這沒有發生。相反,我看到了這個輸出
Connected to server.domain.com 220 Microsoft FTP Service Name (file.server.domain.com:My_OSX_Username): #I would expect it would pull my username off the .netrc file
我是否錯誤地使用了 .netrc 文件?
是的,通常該
.netrc
文件應該按照您的描述工作。它可能被不支持它的 FTP 客戶端阻止(也許它是在未啟用此功能的情況下顯式建構的)。這很可能會完成,因為這種儲存使用者名/密碼的方法本質上是不安全的,可能不應該使用。使用 strace 檢查
您始終可以通過使用命令行工具跟踪應用程序來確認應用程序正在做什麼,
strace
.$ strace -s 2000 -o ftp.log ftp m
完成此操作後,您可以分析日誌文件,
ftp.log
以查看您的ftp
客戶端是否正在嘗試讀取該文件.netrc
。如果它工作正常,您將在日誌中看到這種類型的輸出。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
**注意:**在上面我
ftp.somedom.org
使用密碼“blah”連接到使用者“sam”。你可以看到它是從我的.netrc
文件中讀取的。ftp 手冊頁
如果你看一下
ftp
手冊頁,我的版本中提到了這個開關:-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).
我在 Fedora 19 上:
$ rpm -qi ftp Name : ftp Version : 0.17 Release : 64.fc19 Architecture: x86_64