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.
Rispondi
Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 2007, 21:24
Nome Cognome: Alessandro Zamori
Slackware: 64 14.2
Kernel: huge-4.4.75
Desktop: xfce
Località: Roma

File Bash per criptare

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

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: File Bash per criptare

Messaggio 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

Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 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

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

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

Re: File Bash per criptare

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 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

Messaggio 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,

Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 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

Messaggio 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

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

Re: File Bash per criptare

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

Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 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

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

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

Re: File Bash per criptare

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 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

Messaggio 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

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

Re: File Bash per criptare

Messaggio da targzeta »

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

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
hal9000
Linux 2.x
Linux 2.x
Messaggi: 236
Iscritto il: dom 7 gen 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

Messaggio 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,

Rispondi