Pagina 1 di 1

File Bash per criptare

Inviato: ven ott 28, 2016 17:05
da hal9000
Salve a tutti, ho fatto un file Bash per automatizzare il processo per criptare un file utilizzando GPG, è molto rozzo (ma non sono uno specialista).Ecco il codice:
#!/bin/bash
# cambio directory #
cd Documents
# Criptare il file #
gpg -ca --cipher-algo twofish pippo.txt
# rimuovere file #
rm -i pippo.txt

Adesso però vorrei che al posto di "pippo.txt" mi chiedesse di inserire il nome del file in modo da usarlo per più file. Ho cercato un pò in rete ma ho trovato solo :
echo -n
che però genera solo un errore e non mi permette di digitare nulla da tastiera. Grazie per ogni eventuale aiuto o suggerimento.

Re: File Bash per criptare

Inviato: ven ott 28, 2016 18:35
da joe
Potresti passare il nome del file come argomento dello script:
Per leggerlo dandolo come input devi usare un "read" che legga il valore di una variabile tipo NOME_FILE

Codice: Seleziona tutto

echo "inserisci nome del file"
read NOME_FILE
cd /path/dove/sta/ilfile
gpg bla bla bla $NOME_FILE
rm -i $NOME_FILE

Non capisco però bene il tuo script perchè non so come funziona gpg.
Domande:
- perchè rimuovi pippo.txt alla fine? Non è lui il file criptato? Quindi da tenere?
- con lo script sopra puoi criptare solo files che stanno in Documents... Perchè limitarsi?

Sempre gpg permettendo, ripeto non so come funziona quel comando, se crea un altro file criptato o cosa faccia.. Ma al netto di questo discorso, sarebbe più utile passare il nome e il percorso del file da criptare come primo argomento da passare allo script da liea di comando:

Codice: Seleziona tutto

#!/bin/bash

FILE=$1
DIR=$(dirname $FILE)
cd $DIR
gpg -ca --cipher-algo twofish $FILE
rm -i $FILE

Poi ad esempio non so se sia davvero necessari entrare nella directory in cui si trova il file, intendo se lo richieda gpg. Se non lo fosse basterebbe qualcosa di più semplice:

Codice: Seleziona tutto

#!/bin/bash

FILE=$1
gpg -ca --cipher-algo twofish $FILE
rm -i $FILE

Come usare lo script da riga di comando (chiamiamolo "cripta.sh"):

Codice: Seleziona tutto

cripta.sh /dove/sta/il/file/pippo.txt

PS.
per eseguire lo script devi dargli i permessi d'esecuzione:

Codice: Seleziona tutto

chmod +x cripta.sh

Re: File Bash per criptare

Inviato: lun ott 31, 2016 11:19
da hal9000
Ciao Joe, grazie per la risposta e per i suggerimenti.
Non capisco però bene il tuo script perchè non so come funziona gpg.
Domande:
- perchè rimuovi pippo.txt alla fine? Non è lui il file criptato? Quindi da tenere?
- con lo script sopra puoi criptare solo files che stanno in Documents... Perchè limitarsi?

Rimuovo pippo.txt perchè con quel comando gpg crea una copia con lo stesso nome con l' estensione criptata, il file resta comunque in chiaro, quindi meglio eliminarlo;
hai ragione, infatti lo step successivo era di creare uno script utilizabile anche per directory e file diversi, cosa che farò grazie ai tuoi suggerimenti.

Re: File Bash per criptare

Inviato: lun ott 31, 2016 11:30
da targzeta
Dai anche un'occhiata a questo script che avevo creato io:
https://gist.github.com/targzeta/7305755

Non usa GPG, usa una chiave segreta di codifica/decodifica. Come argomento vuole un (e uno solo) file da cifrare/decifrare, quando cifra crea un file .enc e RIMUOVE l'originale. Quando decritta vuole un file .enc e alla fine rimuove l'estensione.

Se hai un account su github e ti va potresti migliorare lo script per:
  • gestire più file o directory
  • usare una codifica con GPG

Emanuele

Re: File Bash per criptare

Inviato: sab nov 05, 2016 11:24
da hal9000
Grazie per la risposta. Non ho un account su github, ma ho comunque dato un' occhiata veloce al tuo file e mi ha interessato molto. Appena avrò un pò di tempo voglio lavorarci sopra. Saluti,

Re: File Bash per criptare

Inviato: sab giu 24, 2017 18:52
da hal9000
Riprendo questo vecchio post per ringraziare targzeta, ho modificato il suo file e funziona benissimo.
Solo che ora vorrei che aprisse in automatico il file in desktop, qualcosa del tipo:
if nomefile.odt
xdg-open nomefile.odt
else
exit
dove nomefile è il file decriptato. Purtroppo la mia conoscenza della BASH non è così avanzata.
Saluti

Re: File Bash per criptare

Inviato: lun giu 26, 2017 11:46
da conraid
Il file vi serva da portare dietro o anche nel vostro hard disk per tenerlo nascosto a chi può accedere all'hard disk?
Nel secondo caso forse sarebbe meglio cancellarlo con shred, srm o altro tool di cancellazione "sicura".

Re: File Bash per criptare

Inviato: lun giu 26, 2017 12:06
da hal9000
Hai ragione, ma al momento mi interessa soltanto complicare la vita a chi dovesse impossessarsi del PC. Poi piano piano lo metterò a punto più sicuro.
Grazie comunque per l' osservazione. Saluti.

Re: File Bash per criptare

Inviato: lun giu 26, 2017 23:33
da targzeta
Per complicare la vita in caso di furto o smarrimento del PC basta criptare la partizione che usi per i dati personali. Io personalmento uso ecryptfs.

Quello script l'ho scritto e lo uso solo per i file che mi invio via email.

Comunque, per quello che chiedi dovrebbe bastare aggiungere quanto segue subito dopo la riga:_decrypt_file "$_FILE" $_KEY

Codice: Seleziona tutto

_decrypted_file="${_FILE%.enc}"
_decrypted_file_extension="${_decrypted_file##*.}"
[[ ${_decrypted_file_extension,,} == 'odt' ]] && xdg-open "$_decrypted_file"

Emanuele

Re: File Bash per criptare

Inviato: mer lug 12, 2017 20:45
da hal9000
Grazie per la risposta. Non sembra funzionare a causa del file, ma non ha importanza. Ho imparato cose nuove sulla bash e scoperto ecrypyfs. Durante l' estate voglio studiarlo meglio. Saluti Alessandro

Re: File Bash per criptare

Inviato: gio lug 13, 2017 6:27
da targzeta
Se serve una mano per il fatto che non funziona lo script....

Emanuele

Re: File Bash per criptare

Inviato: ven lug 14, 2017 11:45
da hal9000
Grazie, molto gentile. Magari appena passato questo periodo estivo dove tra vacanze, lavoro ed altre attività secondarie sono un bel pò impenato. Saluti,