File Bash per criptare

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

File Bash per criptare

Messaggioda hal9000 » ven ott 28, 2016 17:05

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.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2705
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: File Bash per criptare

Messaggioda joe » ven ott 28, 2016 18:35

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

Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

Re: File Bash per criptare

Messaggioda hal9000 » lun ott 31, 2016 11:19

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.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6467
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: File Bash per criptare

Messaggioda targzeta » lun ott 31, 2016 11:30

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
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

Re: File Bash per criptare

Messaggioda hal9000 » sab nov 05, 2016 11:24

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,

Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

Re: File Bash per criptare

Messaggioda hal9000 » sab giu 24, 2017 18:52

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

Avatar utente
conraid
Staff
Staff
Messaggi: 12947
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: File Bash per criptare

Messaggioda conraid » lun giu 26, 2017 11:46

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".

Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

Re: File Bash per criptare

Messaggioda hal9000 » lun giu 26, 2017 12:06

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.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6467
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: File Bash per criptare

Messaggioda targzeta » lun giu 26, 2017 23:33

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
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

Re: File Bash per criptare

Messaggioda hal9000 » mer lug 12, 2017 20:45

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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6467
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: File Bash per criptare

Messaggioda targzeta » gio lug 13, 2017 6:27

Se serve una mano per il fatto che non funziona lo script....

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
hal9000
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: dom gen 07, 2007 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

Re: File Bash per criptare

Messaggioda hal9000 » ven lug 14, 2017 11:45

Grazie, molto gentile. Magari appena passato questo periodo estivo dove tra vacanze, lavoro ed altre attività secondarie sono un bel pò impenato. Saluti,