Slik sletter du filer sikkert på Linux

Åpne harddisken i hot swap skuff

Biehler Michael/Shutterstock.com



Makuler gamle datafiler av samme grunn som du makulerer gamle papirdokumenter. Vi forteller deg hva du trenger å vite om sikker sletting av Linux-filer. Denne opplæringen dekker |_+_| kommandoen og |_+_| rekke verktøy.

Slettede filer kan normalt gjenopprettes

Sletting av en fil fjerner den faktisk ikke fra harddisken din. Alt avhenger av måten filsystemet ditt bruker inoder på. Dette er datastrukturene i filsystemet som inneholder metadataene angående filene. Navnet på filen, dens plassering på harddisken, hvilke attributter og tillatelser den har, og så videre, er alle lagret i en inode. En katalog er ikke mer enn en fil i seg selv. En som inneholder navnene og inodenumrene til filene som katalogen inneholder.





Når du sletter en fil med |_+_|, frigjør filsystemet den aktuelle inoden og justerer katalogfilen. Dette markerer plassen på harddisken som filen pleide å okkupere som ubrukt. Tenk deg at du går inn i et bibliotek og går gjennom kartoteket, finner en boks katalogkort og river det opp. Boken ligger fortsatt i hylla. Det er bare vanskeligere å finne.

Med andre ord, plassen som ble brukt av filen er nå fri til å brukes av andre filer. Men innholdet i den gamle filen ligger fortsatt i det rommet. Inntil den plassen er overskrevet, er det en god sjanse for at filen kan hentes.



Annonse

Men å fullstendig kvitte seg med en fil er ikke så enkelt som å bare overskrive dem. Som vi skal se.

Ikke gjør dette med SSD-er

Disse teknikkene er for tradisjonelle elektromekaniske harddisker (HDD), og bør ikke brukes med solid state-stasjoner (SSD). Det vil ikke fungere og vil føre til ekstra skriving og unødvendig slitasje på SSD-en din. For å slette data på en sikker måte fra en SSD, bør du bruke verktøyet fra produsenten av SSD-en.

I SLEKT: Slik sletter du filer og kataloger i Linux-terminalen



The shred Command

|_+_| er designet for å utføre overskrivingen for deg så en slettet fil kan ikke gjenopprettes. Den er inkludert i alle Linux-distribusjonene som ble testet under forskningen for denne artikkelen, inkludert Ubuntu, Fedora og Manjaro.

I dette eksemplet skal vi jobbe i en katalog som heter ~/research, som inneholder mange tekstfiler. Den inneholder også noen andre kataloger som igjen inneholder andre filer. Vi kommer til å anta at disse filene er sensitive og må slettes helt fra harddisken.

Vi kan se katalogtrestrukturen ved å bruke |_+_| kommando som følger. Den |_+_| (katalog)-alternativet forårsaker |_+_| kun for å vise kataloger, og ikke for å liste alle filene. Katalogtrestrukturen ser slik ut:

shred

Makulering av en enkelt fil

For å makulere en enkelt fil kan vi bruke følgende kommando. Alternativene vi bruker er:

    u: Fjern allokering og fjern filen etter overskriving. v: Utførlig alternativ, slik at |_+_| forteller oss hva den gjør. med: Utfører en siste overskriving med nuller.
secure-delete

Annonse

|_+_| overskriver filen fire ganger som standard. De tre første passeringene bruker tilfeldige data, og den siste passeringen bruker nuller, slik vi ba om. Den fjerner deretter filen og overskriver noen av metadataene i inoden

makulere å lage fire pasninger

Stille inn antall overskrivingspasseringer

Vi kan spørre |_+_| for å bruke flere eller færre overskrivingspasninger ved å bruke |_+_| (tall) alternativ. |_+_| vil alltid bruke minst ett pass. Nummeret vi oppgir her er antallet ekstra pass vi krever |_+_| å fremføre. Så |_+_| vil alltid gjøre ett pass mer enn antallet vi ber om. For å få tre pass totalt ber vi om to ekstra pass:

rm

Som forventet, |_+_| gjør tre pasninger.

Færre passeringer - færre makuleringer hvis du vil - er åpenbart raskere. Men er det mindre sikkert? Tre pasninger, interessant nok, er nok mer enn nok.

I SLEKT: Du trenger bare å tørke en disk én gang for å slette den på en sikker måte

Makulering av flere filer

Jokertegn kan brukes med |_+_| for å velge grupper med filer som skal slettes. Den |_+_| representerer flere tegn, og |_+_| representerer et enkelt tegn. Denne kommandoen ville slette alle de gjenværende Preliminary_Notes-filene i gjeldende arbeidskatalog.

shred

De resterende filene behandles hver av |_+_| etter tur.

|_+_| har ikke noe rekursivt alternativ, så det kan ikke brukes til å slette katalogtrær for nestede kataloger.

Problemet med sikker sletting av filer

Så godt som |_+_| er, det er et problem. Moderne journalføringsfilsystemer som ext3 og ext4 gjør en enorm innsats for å sikre at de ikke går i stykker, blir korrupte eller mister data. Og med journalføringsfilsystemer er det ingen garanti for at overskrivingen faktisk finner sted over harddiskplassen som brukes av den slettede filen.

Hvis alt du er ute etter litt trygghet på at filene har blitt slettet litt grundigere enn |_+_| ville ha gjort det, da |_+_| er nok greit. Men ikke gjør feilen å tro at dataene definitivt er borte og er helt uopprettelige. Det er ganske mulig ikke saken.

I SLEKT: Hvorfor du ikke kan 'sikkert slette' en fil, og hva du bør gjøre i stedet

Suiten for sikker sletting

Den |_+_| kommandoer prøver å overvinne den beste innsatsen med å journalføre filsystemer og å lykkes med å overskrive filen sikkert. Men akkurat de samme forbeholdene gjelder. Det er fortsatt ingen garanti for at overskrivingen faktisk finner sted over området på harddisken der du trenger den for å slette filen av interesse. Det er større sjanse, men ingen garanti.

Annonse

Den |_+_| kommandoer bruker følgende sekvens med overskrivinger og handlinger:

  • 1 overskriv med 0xFF-verdibyte.
  • 5 overskriver med tilfeldige data.
  • 27 overskriver med spesielle verdier definert av Peter Gutmann.
  • 5 flere overskrivinger med tilfeldige data.
  • Gi filen nytt navn til en tilfeldig verdi.
  • Kutt av filen.

Hvis alt dette virker overdrevent for deg, er du i godt selskap. Det virker også overdrevent for Peter Gutmann, professor ved Universitetet i Aukland. Han publiserte en artikkel i 1996 diskutere disse teknikkene , som oppsto den urbane myten om at du må bruke alle teknikkene som er diskutert i den artikkelen samtidig.

Peter Gutmann har siden forsøkt å få anden tilbake i flasken og sa at en god skrubbing med tilfeldige data vil gjøre omtrent så bra som man kan forvente.

Men vi er der vi er, og dette er utvalget av teknikker som brukes av |_+_| kommandoer. Men først må vi installere dem.

Installerer sikker-slett

Bruk |_+_| for å installere denne pakken på systemet ditt hvis du bruker Ubuntu eller en annen Debian-basert distribusjon. På andre Linux-distribusjoner, bruk Linux-distribusjonens pakkehåndteringsverktøy i stedet.

tree

Det er fire kommandoer inkludert i |_+_| bunt.

  1. |_+_| er en sikker |_+_|, som brukes til å slette filer ved å slette dem og overskrive harddiskplassen.
  2. |_+_| er et verktøy for å overskrive all ledig plass på harddisken.
  3. |_+_| brukes til å overskrive og rense bytteplassen din.
  4. |_+_| brukes til å rense RAM-en din.

srm-kommandoen

Du bruker |_+_| kommandoen på samme måte som du ville brukt |_+_| kommando. For å fjerne en enkelt fil, bruk følgende kommando. Den |_+_| (null) alternativet forårsaker |_+_| å bruke nuller for den siste slettingen i stedet for tilfeldige data. Den |_+_| (verbose) alternativet gjør |_+_| informere oss om fremgangen.

-d

Annonse

Det første du legger merke til er at |_+_| er sakte. Det gir litt visuell tilbakemelding mens det fungerer, men det er en lettelse når du ser ledeteksten igjen.

Du kan bruke |_+_| (reduser sikkerheten) mulighet for å redusere antall pasninger til to, noe som øker farten dramatisk.

tree

|_+_| informerer oss om at dette - etter deres mening - er mindre sikkert, men det sletter og overskriver fortsatt filen for oss.

Du kan bruke alternativet -l (redusere sikkerheten) to ganger, for å redusere antall passeringer ned til én.

shred

Bruke srm med flere filer

Vi kan også bruke jokertegn med |_+_|. Denne kommandoen vil slette og slette de resterende delene av kapittel én:

shred

Filene behandles av |_+_| etter tur.

Slette kataloger og deres innhold med srm

Den |_+_| (rekursivt) alternativ vil gjøre |_+_| slette alle underkataloger og deres innhold. Du kan sende stien til den første katalogen til |_+_|.

Annonse

I dette eksemplet sletter vi alt den gjeldende katalogen, ~/research. Dette betyr at alle filene i ~/research og alle underkatalogene er sikkert fjernet.

shred

srm begynner å behandle katalogene og filene.

Den returnerer deg til slutt til ledeteksten. På testmaskinen som denne artikkelen ble undersøkt på, tok dette rundt en time å fjerne omtrent 200 filer fordelt mellom gjeldende katalog og tre nestede kataloger.

Alle filene og underkatalogene ble fjernet som forventet.

sfill-kommandoen

Hva om du er bekymret for en fil du har slettet ved hjelp av rm, hvordan kan du gå over den gamle bakken og sørge for at den blir overskrevet? Den |_+_| kommandoen vil overskrive all ledig plass på harddisken.

Når den gjør dette, vil du legge merke til at du har mindre og mindre ledig plass på harddisken, helt til det punktet hvor det ikke er ledig plass i det hele tatt. Når |_+_| fullføres, frigjør den all ledig plass tilbake til deg. Hvis du administrerer et flerbrukersystem, vil dette være svært forstyrrende, så dette er en vedlikeholdsoppgave som bør utføres utenom åpningstidene.

Annonse

Selv på en enkeltbrukerdatamaskin betyr tap av plass på harddisken at den er ubrukelig én gang |_+_| har brukt det meste av plassen. Dette er noe du kan starte og deretter gå bort fra.

For å prøve å øke hastigheten litt, kan du bruke |_+_| (redusere sikkerheten) alternativ. De andre alternativene er |_+_| (verbose) og |_+_| (null) alternativer vi har sett tidligere. Her spør vi |_+_| for å sikkert overskrive all ledig plass i /home-katalogen.

-n

Føl deg som hjemme. På testdatamaskinen – som bare har en 10 GB harddisk – ble dette startet midt på ettermiddagen, og det ble fullført en gang over natten.

Det vil snurre bort i timevis. Og dette er med den |_+_| (redusere sikkerheten) alternativ. Men til slutt vil du bli returnert til ledeteksten.

sswap-kommandoen

Den |_+_| kommandoen overskriver lagringen i swap-partisjonen. Det første vi må gjøre er å identifisere swap-partisjonen din. Vi kan gjøre dette med |_+_| kommando, som viser blokkeringsenheter.

shred

Du må finne ordet swap, og notere blokkenheten den er koblet til.

Annonse

Vi kan se swap-partisjonen er koblet til |_+_|.

Vi må slå av diskskriving til swap-partisjonen så lenge overskrivingen varer. Vi vil bruke |_+_| kommando:

shred

Vi kan nå bruke |_+_| kommando.

Vi bruker |_+_| som en del av kommandolinjen for |_+_| kommando. Vi bruker også |_+_| (ordlig) alternativ og |_+_| (minske sikkerheten) alternativer, som vi brukte tidligere.

shred

|_+_| begynner å jobbe seg gjennom swap-partisjonen din, og overskriver alt den er i den. Det tar ikke så lang tid som |_+_|. Det føles bare sånn.

Når den er fullført, må vi gjeninnføre swap-partisjonen som en aktiv swap-plass. Vi gjør dette med |_+_| kommando:

shred

sdmem-kommandoen

Den |_+_| pakken inneholder til og med et verktøy for å tørke RAM-brikkene (Random Access Memory) i datamaskinen.

Annonse

TIL kaldstøvelangrep krever fysisk tilgang til datamaskinen din kort tid etter at den er slått av. Denne typen angrep kan potensielt tillate henting av data fra RAM-brikkene dine.

Hvis du tror du trenger å beskytte deg mot denne typen angrep – og det ville være en strekk for de fleste å tro at de trengte det – kan du tørke av RAM-en din før du slår av datamaskinen. Vi bruker |_+_| (verbose) og |_+_| (reduser sikkerheten) alternativer igjen.

shred

Terminalvinduet vil fylles opp med stjerner som en indikasjon på at |_+_| jobber seg gjennom RAM-en din.

Det enkle alternativet: Bare krypter stasjonen din

I stedet for å slette filer på en sikker måte, hvorfor ikke sikre harddisken eller hjemmemappen med kryptering?

Hvis du gjør det, kan ingen få tilgang til noe, enten det er en levende fil eller en slettet fil. Og du trenger ikke å være på vakt og huske å slette sensitive filer på en sikker måte fordi alle filene dine allerede er beskyttet.

De fleste Linux-distribusjoner spør om du vil bruke kryptering ved installasjonstidspunktet. Å si ja vil spare mye fremtidig forverring. Du kan ikke håndtere hemmelig eller sensitiv informasjon. Men hvis du tror du kan gi eller selge datamaskinen til noen andre når du er ferdig med den, vil kryptering også forenkle det.

Linux-kommandoer
Filer tjære · pv · katt · tac · chmod · grep · diff · sed · Med · Mann · pushd · popd · fsck · testdisk · seq · fd · pandoc · CD · $PATH · awk · bli med · jq · brette · unik · journalctl · hale · stat · ls · fstab · kastet ut · mindre · chgrp · chown · rev · se · strenger · type · endre navn · glidelås · pakke opp · montere · umount · installere · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · fra · ln · lapp · konvertere · rclone · makulere · SRM
Prosesser alias · skjerm · topp · hyggelig · renice · framgang · strace · system · tmux · chsh · historie · · parti · gratis · hvilken · dmesg · brukermod · ps · chroot · xargs · tty · rosa · lsof · vmstat · pause · vegg · ja · drepe · søvn · sudo · hans · tid · gruppeadd · brukermod · grupper · lshw · skru av · starte på nytt · Stoppe · strøm av · passwd · lscpu · crontab · Dato · bg · fg
Nettverk netstat · ping · traceroute · ip · ss · hvem er · fail2ban · bmon · du · finger · nmap · ftp · krølle · wget · hvem · hvem er jeg · I · iptables · ssh-keygen · ufw

I SLEKT: Beste Linux bærbare datamaskiner for utviklere og entusiaster

LES NESTE Profilbilde for Dave McKay Dave McKay
Dave McKay brukte først datamaskiner da stanset papirtape var på moten, og han har programmert siden. Etter over 30 år i IT-bransjen er han nå teknologijournalist på heltid. I løpet av sin karriere har han jobbet som frilansprogrammerer, leder for et internasjonalt programvareutviklingsteam, prosjektleder for IT-tjenester og sist som databeskyttelsesansvarlig. Hans forfatterskap har blitt publisert av howtogeek.com, cloudsavvyit.com, itenterpriser.com og opensource.com. Dave er en Linux-evangelist og forkjemper for åpen kildekode.
Les hele bio

Interessante Artikler