Il client apre verso il server non una ma due connessioni:
La connessione di controllo e' persistente per tutta la sessione FTP, le connessione dati vengono create quando necessario.
FTP viene invocato dalla linea di comando:
ftp [ <sistema remoto> ]
Ove sistema remoto e' il nome o l'idirizzo della macchina server. Se non viene dato il nome del sistema remoto si entra nell'ambiente interno FTP da cui e' possibile dare un numero elevato di comandi interni.
In tal caso il pronto e':
ftp>
Una lista dei comandi si ottiene col comando help:
ftp> help Commands may be abbreviated. Commands are: ! debug mget pwd status $ dir mkdir quit struct account disconnect mls quote system append form mode recv sunique ascii get modtime reget tenex bell glob mput rstatus tick binary hash newer rhelp trace bye help nmap rename type case idle nlist reset user cd image ntrans restart umask cdup lcd open rmdir verbose chmod ls prompt runique ? close macdef proxy send cr mdelete sendport site delete mdir put size ftp>
Informazioni un po' piu' dettagliate si ottengono specificando un comando dopo la stringa 'help':
ftp> help ls ls list contents of remote directory ftp> help cdup cdup change remote working directory to parent directory ftp> help glob glob toggle metacharacter expansion of local file names ftp> help bell bell beep when command completed ftp>
Per eseguire un comando, digitarne il nome seguito da eventuali argomenti se richiesti:
ftp> bell Bell mode on. ftp>
FTP serve a trasferire files, in upload o download, e si puo' vedere come un ponte tra la macchina locale e quella remota.
Uno dei modi in cui affrontare il trasferimento e':
L'apertura di connessione, p.es. al sistema mira, avviene col comando:
open mira
La certificazione avviene digitando a richiesta un nome di login valido sulla macchina remota, p.es. mich, seguito dalla relativa password, che non viene visualizzata.
FTP ha un file di configurazione, /etc/ftpusers, che contiene la lista di tutti gli utenti (solitamente root e simili) a cui non e' concesso certificarsi tramite FTP (per evitare il transito in rete di password pericolose).
Ua tipica sequenza di comandi e:
ftp> open mira Connected to mira.olivi.elea.it. 220 mira FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready. Name (mira:root): mich 331 Password required for mich. Password: 230 User mich logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Se il login fallisce, p.es. per password errata, dare il comando user per ritentare la certificazione:
ftp> open mira Connected to mira.olivi.elea.it. 220 mira FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready. Name (mira:root): mich 331 Password required for mich. Password: 530 Login incorrect. Login failed. Remote system type is UNIX. Using binary mode to transfer files. ftp> user mich 331 Password required for mich. Password: 230 User mich logged in. ftp>
Spostarsi nella directory desiderata su macchina remota col comando cd:
ftp> cd superhack 250 CWD command successful. ftp>
Il separatore di directory per salti multipli e' / come in UNIX.
Per cambiare directory sulla macchina locale il comando e' lcd:
ftp> lcd /tmp Local directory now /tmp ftp>
Per listare il contenuto della directory corrente sulla macchina remota usare il comando ls oppure dir:
ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 4557 drwxr-xr-x 3 mich users 2048 Nov 19 15:49 . drwxr-xr-x 9 mich users 1024 Dec 9 14:24 .. -rwxr----- 1 mich users 46711 Sep 26 13:14 chap1.html -rwxr----- 1 mich users 50744 Sep 8 13:54 chap1.rtf .......... -rwxr----- 1 mich users 40276 Oct 16 1996 image7.gif -rwxr----- 1 mich users 25222 Oct 16 1996 intro.html -rw-r--r-- 1 root root 1320960 Oct 15 11:33 superh.tar 226 Transfer complete. ftp>
Per impostare il trasferimento di file binary (8 bit/carattere) usare il comando biinary:
ftp> binary 200 Type set to I. ftp>
Per il download di un file singolo 'superh.tar', cambiandogli nome in 'zzz.tar' usare il comando get:
ftp> get superh.tar xxx.tar 200 PORT command successful. 150 Opening BINARY mode data connection for superh.tar (1320960 bytes). 226 Transfer complete. 1320960 bytes received in 2.07 secs (6.2e+02 Kbytes/sec) ftp>
Se non si voleva cambiare il nome bastava:
ftp> get superh.tar
L'operazione di upload e' col comando put. Il primo argomento e' allora il nome del file locale e l'eventuale secondo argomento e' il nuovo nome del file remoto.
Per trasferimenti multipli i comandi sono mget e mput, seguiti da un solo argomento contenente metacaratteri come ? e *. Non e' possibile cambiare il nime dei file trasferiti.
Un trasferimento multiplo di default attiva il prompting cioe' la richiesta di conferma per il trasferimento di ciascun file: il nome file viene visualizzato seguito da un punto interrogativo; battere 'y' per confermare il trasferimento, 'n' per saltare il file indicato.
Per sopprimere il 'prompting' il comando e' prompt.
ftp> prompt Interactive mode off. ftp> mget image*.gif local: image1.gif remote: image1.gif 200 PORT command successful. 150 Opening BINARY mode data connection for image1.gif (72373 bytes). 226 Transfer complete. 72373 bytes received in 0.367 secs (1.9e+02 Kbytes/sec) ........ local: image7.gif remote: image7.gif 200 PORT command successful. 150 Opening BINARY mode data connection for image7.gif (40276 bytes). 226 Transfer complete. 40276 bytes received in 0.363 secs (1.1e+02 Kbytes/sec) ftp>
La sconnessione si esegue col comando quit oppure bye:
ftp> bye 221 Goodbye.
FTP chiude automaticamente la connessione di controllo e si disconnette dopo 900 secondi di inattivita'.
Il Trivial File Transfer Protocol e' un protocollo senza connessione, basato su UDP. Serve a trasferire dei file senza alcuna richiesta di certificazione.
per la sua evidente pericolosita' ai fini della sicurezza il server tftpd o e' di norma disabilitato, oppure e' costretto a servire files solo da una directory, fornitagli come argomento al momento del lancio:
tftpd /usr/lib/X11/nds
Serve soprattutto alle stazioni 'diskless' come i Terminali X, che mantengono a bordo del server i loro kernel, file di configurazione, files di font, ecc.
Implementa un sottinsieme molto ridotto dei comandi FTP.
tftp> ? Commands may be abbreviated. Commands are: connect connect to remote tftp mode set file transfer mode put send file get receive file quit exit tftp verbose toggle verbose mode trace toggle packet tracing status show current status binary set mode to octet ascii set mode to netascii rexmt set per-packet retransmission timeout timeout set total retransmission timeout ? print help information tftp>
Alcune versioni FTP, quali quella della Washington University (wu-FTP) permettono la configurazione sul server di una cosiddetta banca dati pubblica, a cui una persona generica puo' accedere aprendo una normale connessione FTP e, all'atto della certificazione, digitando:
$ ftp mira Connected to mira.olivi.elea.it. 220 mira FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready. Name (mira:root): ftp 331 Guest login ok, send your complete e-mail address as password. Password: 230-Welcome, archive user! This is an experimental FTP server. If have any 230-unusual problems, please report them via e-mail to root@mira 230-If you do have problems, please try using a dash (-) as the first character 230-of your password -- this will turn off the continuation messages that may 230-be confusing your ftp client. 230- 230-Please read the file README 230- it was last modified on Thu Jul 17 11:51:04 1997 - 214 days ago 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp>
l server di FTP anonimo possiede tutta una serie di configurazioni che permettono di:
Vi sono in Internet migliaia di banche dati organizzate in questo modo, ciascuna contenente anche molti Megabyte di files a dominio pubblico.
Esiste una certa 'etichetta' d'uso di queste banche dati.