Premetto che questo piccolo programma può essere molto utile a chi utilizza frequentemente il protocollo FTP
Oggi vi mostro un’programma che per molti può essere interessante, ma allo stesso tempo per molti può sembrare stupido 🙂
Il protocollo FTP è uno dei protocolli di rete più frequentemente utilizzati. Il protocollo più utilizzato è HTTP, quello che utilizziamo tutti i giorni per fare ricerche, etc…

  • Il protocollo FTP (File Transfer Protocol) è disponibile sulla porta 21 e serve principalmente per scaricare files. Ogni browser web interpreta il layout della pagina del sito FTP in modo differente.
  • Il protocollo HTTP (HyperText Transfer Protocol) è disponibile sulla porta 80 ed è utilizzato per la “visualizzazione” dei siti web nei nostri browser. Vengono interpretati dal browser grazie a un linguaggio di markup che si chiama HTML. Insieme ad HTML sono utilizzati PHP, JavaScript, che rappresentano i linguaggi di scripting più utilizzati per il web, ma non è escluso l’utilizzo di Python, per definire gli stili delle pagine web invece si utilizza CSS (fogli di stile). I linguaggi di scripting si dividono in lato client(JS) e lato server(PHP).

Entrambi i protocolli hanno la possibilità di utilizzare connessioni criptate, ovvero SSL o TLS (HTTPS, FTPS).
HTTPS è ormai sempre più utilizzato, ed è bene che sia così, uno sniffer di rete (ES. il potente Wireshark) sniffando i pacchetti che transitano nella rete, la sua possibilità di trovare username e password di Pippo (un esempio) è quasi impossibile, oppure se anche le riuscisse a sniffare i dati sono criptati secondo un determinato algoritmo md5 o sha1 (se non sbaglio).

Dopo questa parentesi vediamo il programma
Intanto scarichiamo il codice sorgente con questo comando da linea di comando:

$ git clone https://github.com/StefanoBelli/ftp-handler
quindi eseguiamo un change directory:
$ cd ftp-handler

e eseguiamo “./install.sh” come utenti root

# ./install.sh

quindi eseguiamo il comando ftph per vedere se il programma è utilizzabile:

$ ftph
ftph_edited


La sintassi di utilizzo è:

ftph  (livello di debug)

dove può corrispondere a:
ftp.debian.org, localhost (se avete un FTP attivo sulla vostra macchina)
url può essere utilizzato anche per “–help” per ottenere aiuto in Inglese.

e (livello di debug)[Non obbligatorio] può corrispondere a:
0,1,>=2
In pratica il quando il secondo argomento viene specificato, ftplib invia al server la richiesta di mostrargli tutte le informazioni della sessione, le quali vengono mostrate a schermo.
Il valore di default è 0,
1 richiede un debugging minimo,
mentre un valore maggiore o uguale a 2 richiede un debugging più elevato.


Questa che vedete in basso è la schermata di login, lasciate vuoto per entrare in anonimato.

loginftp_edited


Se avete completato il login vi ritroverete in questa schermata, che mostra l’avviso per il comando ‘h’, la data e l’ora dell’accesso al server, informazioni su chi siete, il messaggio di benvenuto del server, le informazioni sulla directory corrente e il suo contenuto. Quello sarà sempre presente.

main_screen_edited

Non appena eseguirete un comando messaggi di benvenuto, etc spariranno, ma non facciamo casini quindi l’output viene “pulito” e poi viene richiesto l’input. Questo continuerà finchè non eseguirete il comando ‘ex’ che serve per uscire dal programma e chiudere la connessione col server.

after_screen_edited


Nel ‘riquadro’ di “DIRECTORY” c’è l’IP del server e chi è l’utente che sta utilizzando quel server.

Quelle 3 parentesi acute blu rappresentano il contenuto della directory, quelle verdi il prompt in attesa.

Eseguiamo il comando ‘h’ per ottenere aiuto e vedere i comandi che ci servono.
E’ obbligatorio lasciare uno spazio tra una frase e l’altra.

Esempi di comandi:

osh #esegue la shell locale /bin/sh 
fcmd RETR something #esegue comando FTP
ex #Esce dal programma
md MY-DIR #crea una directory
cd MY-DIR #cambia la directory corrente
rn MY-FILE FILE #cambia i nomi di MY-FILE a FILE 
rd MY-DIR #rimuove directory
rf FILE #rimuove file
sz FILE #mostra la grandezza in Bytes di FILE 
dlb FILE file_locale #Scarica FILE che verrà rinominato in file_locale 
dla FILE file_locale_ascii #Stessa cosa solo in modalità ASCII (search the web ;) )
ulb file_locale #Carica un file locale sul server FTP
ula file_locale_ascii #Stessa cosa solo in modalità ASCII

Nel caso si voglia rimuovere ftph è sufficiente cambiare directory in ftp-handler ed eseguire il comando:

# ./uninstall.sh

come utente root.

Per ottenere le ultime modifiche eseguire i seguenti comandi in ftp-handler:

$ git pull
# ./install.sh 

Semplicemente git scansiona il repository remoto (origin), se l’esito è positivo eseguite install.sh, vi verrà mostrato un messaggio che dice che ftph è già presente, quindi verrà sovrascritto.

Repository di FTP-Handler qui
Profilo di GitHub

Attenzione, per via di caratteri speciali e alcuni comandi come “clear” il programma non funziona correttamente su Windows
Interprete: Python 2, /usr/bin/python2