Come utilizzare il comando FTP su Linux

Il protocollo File Transfer Protocol, nonostante la sua età, rimane ancora in uso. Sebbene FTP non offra la sicurezza dei protocolli moderni, potrebbe essere necessario utilizzarlo in determinate situazioni. Ecco come procedere.

Importante: Evitare FTP su Internet

È fondamentale chiarire subito un punto: il File Transfer Protocol (FTP) risale agli anni ’70 ed è stato creato senza considerare la sicurezza. Non utilizza alcuna forma di crittografia. Le credenziali di accesso, come nome utente e password, così come i dati trasferiti, vengono inviati in chiaro. Chiunque si trovi sulla stessa rete o tra te e il server può potenzialmente intercettare e visualizzare queste informazioni sensibili. Nonostante ciò, l’FTP ha ancora qualche caso d’uso.

Se il trasferimento di file avviene all’interno della tua rete locale, l’uso dell’FTP dovrebbe essere sicuro, a patto che nessuno sulla tua rete stia intercettando i tuoi dati. Se i file che trasferisci non sono sensibili, l’FTP può essere utilizzato per spostare file all’interno della tua rete. Linux include il programma a riga di comando ftp, utile in questi casi.

Tuttavia, è assolutamente sconsigliato usare il comando ftp per accedere a risorse esterne su Internet. In questi casi, si consiglia di utilizzare il programma a riga di comando sftp, che sfrutta il protocollo SSH per un trasferimento file sicuro. Questo tutorial esaminerà entrambi i programmi.

Per rendere chiaro perché non usare mai FTP su Internet, guarda l’immagine qui sotto. Mostra una password FTP in chiaro. Chiunque sulla tua rete o nel tragitto verso il server FTP può facilmente leggere la password, in questo caso “MySecretPassword”.

Senza crittografia, un utente malintenzionato potrebbe anche modificare i file che scarichi o carichi durante il trasferimento.

Il comando ftp

Una volta che si ha un account valido su un server FTP, ci si può connettere usando il seguente comando. Nelle istruzioni seguenti, è necessario sostituire l’indirizzo IP di esempio con l’indirizzo IP del server FTP a cui si desidera connettersi.

ftp 192.168.4.25

Nota importante: Il comando ftp deve essere utilizzato solo per connettersi a server su reti locali di fiducia. Per il trasferimento di file su Internet, si raccomanda l’uso del comando sftp, descritto di seguito.

Il server FTP risponderà con un messaggio di benvenuto. Il contenuto di questo messaggio può variare a seconda del server. Successivamente, ti verrà chiesto di inserire il nome utente dell’account con cui vuoi accedere.

Si noti che l’indirizzo IP del sito a cui ci si connette viene mostrato, seguito dal nome utente di Linux. Se il nome del tuo account sul server FTP è uguale al tuo nome utente Linux, premi semplicemente il tasto Invio. In tal caso, il tuo nome utente Linux sarà utilizzato anche come nome utente sul server FTP. Se invece il nome utente di Linux e quello dell’account FTP sono diversi, digita il nome utente dell’account FTP e premi Invio.

Accesso al Server FTP

Ti verrà chiesto di inserire la password per il server FTP. Digita la password e premi Invio. La password non verrà mostrata sullo schermo. Se la combinazione di nome utente e password FTP viene riconosciuta dal server, l’accesso al server FTP sarà completato.

Ora ti verrà mostrato il prompt ftp>.

Esplorazione e Download di File

Per prima cosa, probabilmente vorrai visualizzare l’elenco dei file sul server FTP. A questo scopo, puoi utilizzare il comando ls. Il nostro utente vede che il file gc.c è presente sul server FTP e vuole scaricarlo sul proprio computer. Il computer dell’utente è considerato il “computer locale” nel contesto FTP.

Il comando per scaricare (o “ottenere”) un file è get. Quindi, il nostro utente eseguirà il comando get gc.c. Digita get, uno spazio e poi il nome del file che vuole scaricare.

Il server FTP risponde trasferendo il file sul computer locale e confermando il completamento del trasferimento. Vengono mostrate anche le dimensioni del file e il tempo impiegato per il trasferimento.

ls
get gc.c

Per scaricare più file contemporaneamente, si può usare il comando mget (multiple get). Dopo aver dato il comando mget, ti verrà chiesto di confermare se si desidera scaricare ogni file. Rispondi premendo “y” per sì e “n” per no.

Questo metodo può diventare poco pratico per un numero elevato di file. Per questo motivo, collezioni di file correlati vengono solitamente archiviate su server ftp come file tar.gz o tar.bz2.

mget *.c

Caricamento di File sul Server FTP

A seconda delle autorizzazioni concesse al tuo account FTP, potresti essere autorizzato a caricare (o “mettere”) file sul server. Per caricare un file, si utilizza il comando put. Nel nostro esempio, l’utente sta caricando un file chiamato Songs.tar.gz sul server FTP.

put Songs.tar.gz

Come si potrebbe immaginare, esiste un comando per caricare più file contemporaneamente sul server FTP. Si chiama mput (multiple put). Come il comando mget, il comando mput richiede una conferma “y” o “n” per caricare ogni file, uno alla volta.

La stessa logica di archiviare più file in un unico file tar si applica sia per caricare file che per scaricarli. Il nostro utente sta caricando più file “.odt” usando il seguente comando:

mput *.odt

Creazione e Modifica di Cartelle

Se le autorizzazioni del tuo account utente sul server ftp lo permettono, potresti avere la possibilità di creare delle cartelle. Il comando per farlo è mkdir. È importante notare che qualsiasi cartella creata usando il comando mkdir sarà creata sul server ftp, non sul tuo computer locale.

Per cambiare cartella sul server ftp, si usa il comando cd. Quando si utilizza il comando cd, il prompt ftp> non cambierà per riflettere la nuova cartella attuale. Il comando pwd (print working directory) ti mostrerà la tua cartella attuale.

Il nostro utente ftp crea una cartella chiamata music, si sposta dentro la nuova cartella, verifica dove si trova usando il comando pwd, e infine carica un file all’interno di tale cartella.

mkdir music
cd music
pwd
put songs.tar.gz

Per tornare velocemente alla cartella superiore a quella attuale, si usa il comando cdup.

cdup

Accesso al Computer Locale

Per cambiare cartella sul tuo computer locale, puoi utilizzare il comando lcd al prompt ftp>. Tuttavia, è facile perdere traccia della tua posizione nel file system locale. Un metodo più comodo per accedere al file system locale è usare il comando !.

Il comando ! apre una finestra della shell sul computer locale. In questa shell puoi eseguire qualsiasi operazione che normalmente faresti in una finestra di terminale. Dopo aver digitato exit, si torna al prompt ftp>.

Il nostro utente ha utilizzato il comando ! per accedere a una finestra della shell sul computer locale. Ha eseguito il comando ls per vedere quali file ci sono nella cartella e poi ha digitato exit per tornare al prompt ftp>.

!
ls
exit

Rinominare i File

Per rinominare i file sul server FTP si usa il comando rename. In questo esempio, il nostro utente FTP rinomina un file con rename e poi utilizza il comando ls per mostrare i file nella cartella.

rename songs.tar.gz rock_songs.tar.gz
ls

Eliminare i File

Per eliminare i file sul server FTP si usa il comando delete. Per eliminare più file contemporaneamente, si utilizza il comando mdelete. Ti verrà chiesto di fornire una conferma “y” o “n” per l’eliminazione di ogni file.

In questo esempio, il nostro utente FTP ha visualizzato l’elenco dei file per vederne i nomi e poi ha scelto un file da eliminare. Decide quindi di eliminarli tutti.

ls
delete gc.o
mdelete *.o

Utilizzo del Comando sftp

I lettori che hanno familiarità con il sistema di indirizzamento IP avranno notato che l’indirizzo 192.168 del server FTP utilizzato negli esempi precedenti è un indirizzo IP interno, anche detto indirizzo IP privato. Come avvisato all’inizio di questo articolo, il comando ftp va utilizzato solo su reti interne.

Se vuoi connetterti a un server FTP remoto o pubblico, usa il comando sftp. Il nostro utente si collegherà a un account SFTP chiamato demo sul server FTP accessibile pubblicamente, situato su test.trebex.net.

Quando ci si connette, viene comunicato che la connessione è stata stabilita. Viene inoltre comunicato che l’autenticità dell’host non può essere verificata. Questo è normale per la prima connessione a un nuovo host. Si preme “y” per accettare la connessione.

Poiché il nome dell’account utente (demo) è stato passato nella riga di comando, non verrà chiesto il nome dell’account utente. Viene richiesta solo la password. Dopo averla inserita, verificata e accettata, si ottiene il prompt sftp>.

sftp demo@test.rebex.net

I comandi FTP che abbiamo descritto sopra funzionano allo stesso modo in una sessione SFTP, con le seguenti eccezioni:

Per eliminare un file si usa rm (FTP usa delete).
Per eliminare più file si usa rm (FTP usa mdelete).
Per tornare alla cartella superiore si usa cd .. (FTP usa cdup).

Il nostro utente ha utilizzato alcuni comandi nella sua sessione SFTP. Ha usato ls per visualizzare i file e cd per entrare nella cartella pub. Ha usato pwd per visualizzare la cartella di lavoro attuale.

Esistono altre opzioni per il trasferimento di file nel mondo Linux, in particolare scp (copia protetta), ma qui ci siamo concentrati su FTP e SFTP. Questi due comandi, se utilizzati negli scenari appropriati, possono essere molto utili per le tue esigenze di archiviazione e recupero di file.