Pagina 1 di 1

File Bash per criptare

Inviato: ven 28 ott 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 28 ott 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 31 ott 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 31 ott 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 5 nov 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 24 giu 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 26 giu 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 26 giu 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 26 giu 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 12 lug 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 13 lug 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 14 lug 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,