Come utilizzare il comando FTP su Linux

Il File Transfer Protocol è più vecchio della maggior parte dei nostri lettori, ma sta ancora andando forte. FTP non ha la sicurezza di un protocollo moderno, ma potrebbe essere necessario utilizzarlo comunque. Ecco come farlo.

Avviso: non utilizzare FTP su Internet

Mettiamolo subito in chiaro fin dall’inizio: il File Transfer Protocol (FTP) risale ai primi anni ’70 ed è stato scritto senza alcun riguardo per la sicurezza. Non utilizza la crittografia per nulla. Le credenziali di accesso come nome utente e password, nonché i dati scaricati o caricati, vengono trasferiti in chiaro. Chiunque lungo la strada può visualizzare i tuoi segreti. Tuttavia, FTP ha ancora i suoi usi.

Se trasferisci file all’interno della tua rete, dovresti essere al sicuro, a patto che nessuno sulla rete stia intercettando i documenti sensibili mentre li trasferisci. Se i tuoi file non sono riservati o sensibili in alcun modo, spostarli nella tua rete interna con FTP dovrebbe andare bene. Linux ha lo standard ftp programma a riga di comando per affrontare proprio quello scenario.

Ma sicuramente non utilizzare il comando ftp per accedere a risorse esterne su Internet. Per questo, usa sftp programma a riga di comando, che utilizza il protocollo di trasferimento file SSH sicuro. Presenteremo entrambi questi programmi in questo tutorial.

Per chiarire perché non vuoi mai usare FTP su Internet, dai un’occhiata allo screenshot qui sotto. Mostra la password FTP in chiaro. Chiunque sulla tua rete o tra te e il server FTP su Internet può vedere facilmente che la password è “MySecretPassword”.

Senza la crittografia, anche un malintenzionato potrebbe modificare i file che stai scaricando o caricando in transito.

Il comando ftp

Supponendo che tu abbia un account valido su un sito FTP, puoi connetterti ad esso con il seguente comando. In questo articolo, sostituisci l’indirizzo IP nei comandi con l’indirizzo IP del server FTP a cui ti stai connettendo.

ftp  192.168.4.25

Avviso: è necessario utilizzare solo il comando ftp per connettersi ai server su una rete locale attendibile. Utilizzare il comando sftp, trattato di seguito, per trasferire file su Internet.

comando di connessione ftp in una finestra di terminale

Il server FTP risponde con un messaggio di benvenuto. La formulazione del messaggio di saluto varia da server a server. Quindi chiede il nome utente dell’account a cui stai effettuando l’accesso.

Si noti che viene visualizzato l’indirizzo IP del sito a cui ci si connette, seguito dal nome utente Linux. Se il nome del tuo account sul server FTP è lo stesso del tuo nome utente Linux, premi semplicemente il tasto Invio. Questo userà il tuo nome utente Linux come nome account sul server FTP. Se il nome utente di Linux e il nome dell’account FTP sono diversi, digitare il nome utente dell’account FTP e quindi premere Invio.

Accesso al server FTP

Ti verrà chiesto di inserire la tua password per il sito FTP. Immettere la password e premere Invio. La tua password non viene visualizzata sullo schermo. Se la combinazione di nome account utente e password FTP viene verificata dal server FTP, si accede al server FTP.

Ti verrà presentato il prompt ftp>.

ha effettuato l'accesso all'account ftp in una finestra di terminale

Guardarsi intorno e recuperare i file

Innanzitutto, probabilmente vorrai ottenere un elenco dei file sul server FTP. Il comando ls fa proprio questo. Il nostro utente vede che il file gc.c si trova sul server FTP e vuole scaricarlo sul proprio computer. Il suo computer è il “computer locale” nel gergo FTP.

Il comando per recuperare (o “ottenere”) un file è get. Il nostro utente, quindi, lancia il comando get gc.c. Digitano get, uno spazio e quindi il nome del file che desiderano recuperare.

Il server FTP risponde trasferendo il file sul computer locale e confermando che il trasferimento è avvenuto. Vengono inoltre visualizzate le dimensioni del file e il tempo impiegato per il trasferimento.

ls
get gc.c

trasferimento di file ftp in una finestra di terminale

Per recuperare più file contemporaneamente, usa il comando mget (multiple get). Il comando mget ti chiederà di confermare se desideri scaricare ogni file a turno. Rispondi premendo “y” per sì e “n” per no.

Questo sarebbe noioso per un gran numero di file. Per questo motivo, le raccolte di file correlati vengono solitamente archiviate su siti ftp come singoli file tar.gz o tar.bz2.

mget *.c

comando mget in una finestra di terminale

Caricamento di file sul server FTP

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

put Songs.tar.gz

inserire il comando in una finestra di terminale

Come probabilmente ti aspetti, c’è un comando per mettere più file contemporaneamente sul server FTP. Si chiama mput (put multiplo). Proprio come ha fatto il comando mget, mput chiederà una conferma “y” o “n” per il caricamento di ogni file, uno per uno.

Lo stesso argomento per mettere serie di file negli archivi tar si applica per mettere i file come per ottenere i file. Il nostro utente sta caricando più file “.odt” con il seguente comando:

mput *.odt

comando mput in una finestra di terminale

Creazione e modifica di directory

Se il tuo account utente sul server ftp lo consente, potresti essere in grado di creare directory. Il comando per farlo è mkdir. Per essere chiari, qualsiasi directory creata con il comando mkdir verrà creata sul server ftp e non sul computer locale.

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

Il nostro utente ftp crea una directory chiamata music, cambia in quella nuova directory, conferma dove si trovano usando il comando pwd, quindi carica un file in quella directory.

mkdir music
cd music
pwd
put songs.tar.gz

comandi cd pwd e mkdir in una finestra di terminale

Per spostarsi rapidamente nella directory padre della directory corrente utilizzare il comando cdup.

cdup

comando cdup in una finestra widnowindow del terminale

Accesso al computer locale

Per cambiare la directory sul computer locale, puoi usare il comando lcd al prompt ftp>. Tuttavia, è facile perdere traccia di dove ti trovi nel filesystem locale. Un metodo più conveniente per accedere al filesystem locale è usare il! comando.

Il ! Il comando apre una finestra della shell sul computer locale. Puoi fare qualsiasi cosa in questa shell che puoi in una finestra di terminale standard. Quando digiti exit, torni al prompt ftp>.

Il nostro utente ha utilizzato il! ed è entrato in una finestra della shell sul computer locale. Hanno emesso un comando ls per vedere quali file sono presenti in quella directory e poi hanno digitato exit per tornare al prompt ftp>.

!
ls
exit

!  comando di shell in una finestra di terminale

Rinominare i file

Per rinominare i file sul server FTP utilizzare il comando rename. Qui il nostro utente FTP rinomina un file con rename e quindi utilizza il comando ls per elencare i file nella directory.

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

rinomina il comando nella finestra del terminale

Eliminazione di file

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

Qui il nostro utente FTP ha elencato i file per vedere i loro nomi e poi ne ha scelto uno da eliminare. Decidono quindi di eliminarli tutti.

ls
delete gc.o
mdelete *.o

ls delete e mdelete comandi in una finestra di terminale

Utilizzando il 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, chiamato anche indirizzo IP privato. Come avvertito all’inizio di questo articolo, il comando ftp dovrebbe essere 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 si connettono, vengono informati che la connessione è stata stabilita. Si informa inoltre che l’autenticità dell’ospite non può essere verificata. Questo è normale per la prima connessione un nuovo host. Premono “y” per accettare la connessione.

Poiché il nome dell’account utente (demo) è stato passato sulla riga di comando, non viene richiesto il nome dell’account utente. Viene richiesta solo la password. Questo viene inserito, verificato e accettato e viene presentato con il prompt sftp>.

sftp demo@test.rebex.net

connettersi a un sito sftp in una finestra di terminale

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

Per eliminare un file usa rm (FTP usa delete)
Per eliminare più file usa rm (FTP usa mdelete)
Per spostarti nella directory principale usa cd .. (FTP usa cdup)

Il nostro utente ha utilizzato alcuni comandi nella sua sessione SFTP. Hanno usato ls per elencare i file e cd per passare alla directory pub. Hanno usato il pwd per stampare la directory di lavoro.

comandi sftp in una finestra di terminale

Ci sono altre opzioni per trasferire file nel mondo Linux, in particolare scp (copia protetta), ma qui ci siamo concentrati su FTP e SFTP. Utilizzati negli scenari applicabili, questi due comandi saranno utili a te e alle tue esigenze di archiviazione e recupero dei file.