Come eliminare in modo sicuro i file su Linux

Biehler Michael/Shutterstock.com
Distruggi i vecchi file di dati per lo stesso motivo per cui distruggi i vecchi documenti cartacei. Ti diciamo cosa devi sapere sull'eliminazione sicura dei file Linux. Questo tutorial copre il |_+_| comando e il |_+_| suite di utilità.
I file eliminati sono normalmente recuperabili
L'eliminazione di un file non lo rimuove effettivamente dal disco rigido. Dipende tutto dal modo in cui il tuo filesystem usa gli inode. Queste sono le strutture dati all'interno del filesystem che contengono i metadati relativi ai file. Il nome del file, la sua posizione sul disco rigido, quali attributi e permessi ha e così via sono tutti memorizzati all'interno di un inode. Una directory non è altro che un file stesso. Uno che contenga i nomi e i numeri di inode dei file contenuti nella directory.
Quando elimini un file con |_+_|, il filesystem libera l'inode appropriato e regola il file della directory. Questo contrassegna lo spazio sul disco rigido che il file occupava come inutilizzato. Immagina di entrare in una biblioteca e sfogliare l'indice delle schede, trovare la scheda del catalogo di un libro e strapparla. Il libro è ancora sullo scaffale. È solo più difficile da trovare.
In altre parole, lo spazio utilizzato dal file è ora libero per essere utilizzato da altri file. Ma il contenuto del vecchio file si trova ancora in quello spazio. Fino a quando lo spazio non viene sovrascritto, ci sono buone probabilità che il file possa essere recuperato.
Annuncio pubblicitario
Ma eliminare completamente un file non è così semplice come semplicemente sovrascriverlo. Come vedremo.
Non farlo con gli SSD
Queste tecniche sono per le tradizionali unità disco rigido elettromeccaniche (HDD) e non devono essere utilizzate con unità a stato solido (SSD). Non funzionerà e causerà scritture extra e usura non necessaria al tuo SSD. Per cancellare in modo sicuro i dati da un SSD, dovresti utilizzare l'utilità fornita dal produttore del tuo SSD.
IMPARENTATO: Come eliminare file e directory nel terminale Linux
Il comando brandello
|_+_| è progettato per esegui la sovrascrittura per te quindi un file cancellato non può essere recuperato. È incluso in tutte le distribuzioni Linux che sono state testate durante la ricerca per questo articolo, inclusi Ubuntu, Fedora e Manjaro.
In questo esempio, lavoreremo in una directory chiamata ~/research, che contiene molti file di testo. Contiene anche alcune altre directory che a loro volta contengono altri file. Daremo per scontato che questi file siano sensibili e debbano essere cancellati completamente dal disco rigido.
Possiamo vedere la struttura ad albero delle directory usando |_+_| comando come segue. Il |_+_| (directory) l'opzione causa |_+_| per elencare solo le directory e non per elencare tutti i file. La struttura ad albero delle directory è simile a questa:
shred
Distruggere un singolo file
Per distruggere un singolo file, possiamo usare il seguente comando. Le opzioni che stiamo utilizzando sono:
- 1 sovrascrivere con byte di valore 0xFF.
- 5 sovrascrive con dati casuali.
- 27 sovrascrive con valori speciali definiti da Peter Gutmann.
- Altre 5 sovrascritture con dati casuali.
- Rinominare il file con un valore casuale.
- Tronca il file.
- |_+_| è un |_+_| sicuro, utilizzato per cancellare i file eliminandoli e sovrascrivendo lo spazio sul disco rigido.
- |_+_| è uno strumento per sovrascrivere tutto lo spazio libero sul disco rigido.
- |_+_| viene utilizzato per sovrascrivere e pulire lo spazio di swap.
- |_+_| viene utilizzato per pulire la RAM.
- & rsaquo; Come usare BleachBit su Linux
- › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
- › Funzioni e formule in Microsoft Excel: qual è la differenza?
- & rsaquo; Cyber Monday 2021: le migliori offerte tecnologiche
- & rsaquo; Cyber Monday 2021: le migliori offerte Apple
- › La cartella del computer è 40: come la star di Xerox ha creato il desktop
- › Come trovare il tuo Spotify Wrapped 2021
secure-delete
|_+_| sovrascrive il file quattro volte per impostazione predefinita. I primi tre passaggi utilizzano dati casuali e il passaggio finale utilizza zeri, come richiesto. Quindi rimuove il file e sovrascrive alcuni dei metadati nell'inode
Impostazione del numero di passaggi di sovrascrittura
Possiamo chiedere |_+_| per utilizzare più o meno passaggi di sovrascrittura utilizzando |_+_| (numero) opzione. |_+_| utilizzerà sempre almeno un passaggio. Il numero che forniamo qui è il numero di extra passaggi che richiediamo |_+_| eseguire. Quindi |_+_| farà sempre una passata in più rispetto al numero che chiediamo. Per ottenere tre pass in totale, richiediamo altri due pass:
rm
Come previsto, |_+_| fa tre passaggi.
Meno passaggi, meno tagli se vuoi, è ovviamente più veloce. Ma è meno sicuro? Tre passaggi, curiosamente, sono probabilmente più che sufficienti.
IMPARENTATO: Hai solo bisogno di pulire un disco una volta per cancellarlo in modo sicuro
Distruggere più file
I caratteri jolly possono essere utilizzati con |_+_| per selezionare gruppi di file da cancellare. Il |_+_| rappresenta più caratteri e |_+_| rappresenta un singolo carattere. Questo comando eliminerebbe tutti i restanti file Preliminary_Notes nella directory di lavoro corrente.
shred
I file rimanenti vengono elaborati ciascuno da |_+_| a sua volta.
|_+_| non ha un'opzione ricorsiva, quindi non può essere usato per cancellare alberi di directory di directory nidificate.
Il problema con l'eliminazione sicura dei file
Buono come |_+_| è, c'è un problema. I moderni file system di journaling come ext3 ed ext4 fanno enormi sforzi per garantire che non si rompano, si corrotti o perdano dati. E con i filesystem di journaling, non c'è alcuna garanzia che la sovrascrittura avvenga effettivamente sullo spazio del disco rigido utilizzato dal file eliminato.
Se tutto ciò che cerchi è un po' di tranquillità che i file siano stati eliminati in modo un po' più accurato di |_+_| l'avrebbe fatto, allora |_+_| probabilmente va bene. Ma non commettere l'errore di pensare che i dati siano definitivamente spariti e siano totalmente irrecuperabili. È molto probabile non il caso.
IMPARENTATO: Perché non è possibile 'eliminare in modo sicuro' un file e cosa fare in alternativa
La suite di cancellazione sicura
Il |_+_| I comandi cercano di superare i migliori sforzi del journaling dei filesystem e di riuscire a sovrascrivere il file in modo sicuro. Ma valgono esattamente le stesse avvertenze. Non c'è ancora alcuna garanzia che la sovrascrittura avvenga effettivamente sulla regione del disco rigido necessaria per cancellare il file di interesse. Ci sono più possibilità, ma nessuna garanzia.
Annuncio pubblicitarioIl |_+_| i comandi utilizzano la seguente sequenza di sovrascritture e azioni:
Se tutto ciò ti sembra eccessivo, sei in buona compagnia. Sembra eccessivo anche a Peter Gutmann, professore all'Università di Aukland. Ha pubblicato un articolo nel 1996 discutere di queste tecniche , da cui è nata la leggenda metropolitana che è necessario utilizzare tutte le tecniche discusse in quel documento contemporaneamente.
Da allora Peter Gutmann ha cercato di riportare il genio nella bottiglia dicendo che un buon lavaggio con dati casuali andrà bene come ci si può aspettare.
Ma siamo dove siamo, e queste sono la serie di tecniche impiegate dal |_+_| comandi. Ma prima, dobbiamo installarli.
Installazione di cancellazione sicura
Usa |_+_| per installare questo pacchetto sul tuo sistema se stai usando Ubuntu o un'altra distribuzione basata su Debian. Su altre distribuzioni Linux, usa invece lo strumento di gestione dei pacchetti della tua distribuzione Linux.
tree
Ci sono quattro comandi inclusi in |_+_| fascio.
Il comando srm
Usi il |_+_| comando proprio come useresti |_+_| comando. Per rimuovere un singolo file, utilizzare il seguente comando. Il |_+_| (zero) l'opzione causa |_+_| utilizzare zeri per la cancellazione finale invece di dati casuali. Il |_+_| (verbose) l'opzione rende |_+_| informarci dei suoi progressi.
-d
La prima cosa che noterai è che |_+_| è lento. Fornisce un feedback visivo mentre funziona, ma è un sollievo quando vedi di nuovo il prompt dei comandi.
Puoi usare |_+_| (riduci la sicurezza) per ridurre il numero di passaggi a due, il che accelera notevolmente le cose.
tree
|_+_| ci informa che questo, a suo avviso, è meno sicuro, ma elimina e sovrascrive comunque il file per noi.
Puoi usare l'opzione -l (riduci sicurezza) due volte, per ridurre il numero di passaggi a uno.
shred
Utilizzo di srm con più file
Possiamo anche usare i caratteri jolly con |_+_|. Questo comando cancellerà e cancellerà le parti rimanenti del capitolo uno:
shred
I file vengono elaborati da |_+_| a sua volta.
Eliminazione di directory e dei loro contenuti con srm
Il |_+_| L'opzione (ricorsiva) renderà |_+_| eliminare tutte le sottodirectory e il loro contenuto. Puoi passare il percorso della prima directory a |_+_|.
Annuncio pubblicitarioIn questo esempio, stiamo cancellando tutta la directory corrente, ~/research. Ciò significa che tutti i file in ~/research e tutte le sottodirectory vengono rimossi in modo sicuro.
shred
srm avvia l'elaborazione delle directory e dei file.
Alla fine ti riporta al prompt dei comandi. Sulla macchina di prova su cui questo articolo è stato ricercato, è stata necessaria circa un'ora per rimuovere circa 200 file distribuiti tra la directory corrente e tre directory nidificate.
Tutti i file e le sottodirectory sono stati rimossi come previsto.
Il comando sfill
E se sei preoccupato per un file che hai cancellato usando rm, come puoi andare su quel vecchio terreno e assicurarti che venga sovrascritto? Il |_+_| comando sovrascriverà tutto lo spazio libero sul disco rigido.
Mentre lo fa, noterai che hai sempre meno spazio libero sul tuo disco rigido, fino al punto in cui lo spazio libero non c'è affatto. Quando |_+_| completa, ti restituisce tutto lo spazio libero. Se stai amministrando un sistema multiutente, questo sarebbe molto fastidioso, quindi questa è un'attività di manutenzione che dovrebbe essere eseguita fuori orario.
Annuncio pubblicitarioAnche su un computer di un singolo utente, la perdita di spazio sul disco rigido significa che è inutilizzabile una volta |_+_| ha utilizzato la maggior parte dello spazio. Questo è qualcosa da cui inizieresti e poi ti allontaneresti.
Per cercare di velocizzare un po' le cose, puoi usare il |_+_| (ridurre la sicurezza) opzione. Le altre opzioni sono |_+_| (verboso) e |_+_| (zero) opzioni che abbiamo visto in precedenza. Qui, stiamo chiedendo |_+_| per sovrascrivere in modo sicuro tutto lo spazio libero nella directory /home.
-n
Mettiti comodo. Sul computer di prova, che ha solo un disco rigido da 10 GB, questo è stato avviato a metà pomeriggio ed è stato completato durante la notte.
Sforzerà per ore. E questo è con il |_+_| (ridurre la sicurezza) opzione. Ma, alla fine, verrai restituito al prompt dei comandi.
Il comando di scambio
Il |_+_| comando sovrascrive lo spazio di archiviazione nella partizione di swap. La prima cosa che dobbiamo fare è identificare la tua partizione di swap. Possiamo farlo con |_+_| comando, che elenca i dispositivi a blocchi.
shred
È necessario individuare la parola swap e prendere nota del dispositivo a blocchi a cui è collegata.
Possiamo vedere che la partizione di swap è connessa a |_+_|.
È necessario disattivare le scritture su disco nella partizione di swap per la durata della sovrascrittura. Useremo il |_+_| comando:
shred
Ora possiamo usare |_+_| comando.
Useremo |_+_| come parte della riga di comando per |_+_| comando. Useremo anche il |_+_| (verbose) opzione e |_+_| (ridurre la sicurezza), che abbiamo usato in precedenza.
shred
|_+_| inizia a farsi strada attraverso la partizione di swap, sovrascrivendo tutto ciò che contiene. Non ci vuole tempo quanto |_+_|. Sembra proprio di sì.
Una volta completato, è necessario ripristinare la partizione di swap come spazio di swap attivo. Lo facciamo con |_+_| comando:
shred
Il comando sdmem
Il |_+_| Il pacchetto contiene anche uno strumento per cancellare i chip RAM (Random Access Memory) nel computer.
Annuncio pubblicitarioA attacco di avvio a freddo richiede l'accesso fisico al computer subito dopo lo spegnimento. Questo tipo di attacco può, potenzialmente, consentire il recupero di dati dai tuoi chip RAM.
Se ritieni di aver bisogno di proteggerti da questo tipo di attacco, e sarebbe una forzatura per la maggior parte delle persone pensare di averne bisogno, puoi cancellare la RAM prima di spegnere il computer. Useremo il |_+_| (verboso) e |_+_| (ridurre la sicurezza) opzioni ancora una volta.
shred
La finestra del terminale si riempirà di asterischi per indicare che |_+_| si sta facendo strada attraverso la tua RAM.
L'opzione facile: crittografa semplicemente il tuo disco
Invece di eliminare i file in modo sicuro, perché non proteggere il disco rigido o la cartella Inizio utilizzando la crittografia?
Se lo fai, nessuno può accedere a nulla, che si tratti di un file live o di un file cancellato. E non devi stare in guardia e ricordarti di cancellare in modo sicuro i file sensibili perché tutti i tuoi file sono già protetti.
La maggior parte delle distribuzioni Linux chiede se si desidera utilizzare la crittografia al momento dell'installazione. Dire di sì salverà un sacco di esasperazioni future. Non puoi trattare con informazioni segrete o sensibili. Ma se pensi di poter dare o vendere il computer a qualcun altro quando hai finito, la crittografia semplificherà anche questo.
IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati
LEGGI SUCCESSIVO
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa