2011-08-18, 10:35
  #1
Medlem
doctor-0xEFs avatar
Jag funderar på om shred räcker för att ta bort filer permanent, så de inte kan återställas, om man har ett filsystem med journalföring. Om det inte räcker har någon en fundering på vad man kan tänkas använda? Jag har lite skit som måste bort och vill inte nuka hela pertitionen på disken för att fixa detta. Sedan funderar jag på om någon känner till en applikation som skriver över allt ledigt utrymme med 0'or.

Anlendingen till att jag frågar är att jag läst att det skall vara teoretiskt möjligt att återställa filer om det är journalförande filsystem men jag har inte hittat någon direkt förklaring till om det är praktiskt möjligt. I teorin kan man göra mycket men det hjälper inte så mycket när vi kommer till praktik.
Citera
2011-08-18, 12:19
  #2
Medlem
Zoms avatar
Citat:
Ursprungligen postat av doctor-0xEF
Jag funderar på om shred räcker för att ta bort filer permanent, så de inte kan återställas, om man har ett filsystem med journalföring. Om det inte räcker har någon en fundering på vad man kan tänkas använda? Jag har lite skit som måste bort och vill inte nuka hela pertitionen på disken för att fixa detta. Sedan funderar jag på om någon känner till en applikation som skriver över allt ledigt utrymme med 0'or.

Anlendingen till att jag frågar är att jag läst att det skall vara teoretiskt möjligt att återställa filer om det är journalförande filsystem men jag har inte hittat någon direkt förklaring till om det är praktiskt möjligt. I teorin kan man göra mycket men det hjälper inte så mycket när vi kommer till praktik.
Vanligtvis brukar man väl säga tvärt om, det är lättare att återställa filer i icke-journalförande filsystem, just eftersom du då (om du är snabb) kan döda datorn och starta upp den igen. Om ändringarna inte gått igenom finns filen kvar. Med journalförande filsystem är det svårare, eftersom ändringarna då läggs till i journalen och appliceras nästa gång du startar upp.

Dock vet jag inte hur bra det här stämmer eftersom extundelete t.ex. verkar använda sig av journalen för att återställa filer. Du skulle ju kunna testa ta bort några olika filer med shred och se om de går att återställa med extundelete?
Citera
2011-08-18, 12:38
  #3
Medlem
doctor-0xEFs avatar
Nu handlar det om att jag tar bort lite filer som jag inte vill att man skall kunna återställa någonsin, lite snabba sökningar påstår att filsystem med journalföring skall ha en teoretisk möjlighet att återställa filer efter att man shredat dem. När jag söker så hittar jag inte något som förklarar varför det skall vara så och då tänkte jag fråga för att bli säker.

Det handlar alltså inte om att snuten står och bryter ner dörren och jag snabbt måste förstöra data utan att jag just nu sitter och förstör datan och inte vill att den som får datorn efter mig skall kunna återställa filerna och hitta på fanskap.

Shred skriver över filen 4 gånger eller mer så jag tycker att det borde vara väldigt svårt för någon att få tillbaks filerna oavsett filsystem. Journalföringen går inte på någon backup eller liknande vad jag förstått utan är mer något swapliknande som används för att filer skall hållas intakta så länge som möjligt före något sker och spara ändringar så man kan gå tillbaks om t ex strömmen går mitt i ett arbete.

Känner någon till något som är som CCleaner till linux, jag vill endast skriva över fritt/tomt utrymme med nollor och inte vara och leka runt i register och liknande då det inte finns något spännande där för någon.
Citera
2011-08-18, 12:48
  #4
Medlem
Zoms avatar
Hm. Jag antar att du ska sälja datorn i befintligt skick isåfall och därför inte formaterar den? Annars brukar ett enkelt pass med nollor (dd if=/dev/zero of=/dev/hårddisk) duga om jag minns rätt.

Som du märker är jag inte så hemskt insatt, men vill du skriva över allt ledigt utrymme skulle du ju kunna använda exempelvis gparted, ändra storlek på din partition så att du inte har något fritt utrymme kvar, skapa och formatera en ny partition av vad som nu är ledigt, skriva ändringarna, och sen ta bort den tomma partitionen och öka storleken på den gamla partitionen igen. Dock tycker man ju att det bör finnas en elegantare lösning.
Citera
2011-08-19, 16:14
  #5
Medlem
vattholma-2s avatar
Citat:
Ursprungligen postat av doctor-0xEF
Känner någon till något som är som CCleaner till linux, jag vill endast skriva över fritt/tomt utrymme med nollor och inte vara och leka runt i register och liknande då det inte finns något spännande där för någon.

Citat:
Ursprungligen postat av Zom
Hm. Jag antar att du ska sälja datorn i befintligt skick isåfall och därför inte formaterar den? Annars brukar ett enkelt pass med nollor (dd if=/dev/zero of=/dev/hårddisk) duga om jag minns rätt.
Jag hittade detta när jag sökte idag

Kod:
cat /dev/zero > zero.file
rm zero.file

Någon som vet om detta är vad jag söker?
Citera
2011-08-19, 16:45
  #6
Medlem
Ondves avatar
Annars finns ju secure-delete. Den har funktion som shred, fast ska tydligen skriva över ännu fler gånger så att det inte finns någon möjlighet alls att återskapa. Huruvida det funkar på journalförande system vet jag dock inte.
Detta paket har även lite andra funktioner så som sfill, som skriver över tomt utrymme och gör det icke-återskapningsbart.

För de som kör arch och är sugna att testa så ligger den i AUR. Kollade runt lite för att se om den hade någon officiell sida, men de verkar tyvärr ganska inaktiva.
Citera
2011-08-21, 17:48
  #7
Medlem
echel0ns avatar
Citat:
Ursprungligen postat av vattholma-2
Jag hittade detta när jag sökte idag
Kod:
cat /dev/zero > zero.file
rm zero.file

Någon som vet om detta är vad jag söker?

Kod:
# cat /dev/zero >zero.file
cat: write error: No space left on device
# rm zero.file

Ungefär så blir det vid körning.

Ska kanske inspektera disken på lite lägre nivå, men logiskt sett:
  • Skriv nollor tills det inte finns mer plats på disken.
  • Ta bort filen med nollorna.

Det borde göra att det bara ligger nollor kvar sedan, ja.

För randomdata kan /dev/zero bytas ut mot /dev/random eller /dev/urandom.
Citera
2011-08-21, 18:41
  #8
Medlem
echel0ns avatar
Några experiment på en 10MBs partition:
Kod:
# fdisk /dev/sdb
Command (m for help): o
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3824, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3824, default 3824): +10M
Command (m for help): w
...
# mkfs.ext4 /dev/sdb1
...
# mount /dev/sdb1 /mnt/
# ls -lh /mnt/
total 12K
drwx------ 2 root root 12K Aug 21 18:01 lost+found
# df -h /mnt/
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              11M  1.1M  9.0M  11% /mnt
# cat /dev/zero > /mnt/zero.file
cat: write error: No space left on device
# rm /mnt/zero.file
# umount /mnt
# hexdump -v /dev/sdb1 > dump
# head -n 1 dump
0000000 0000 0000 0000 0000 0000 0000 0000 0000
# wc -l dump
719873 dump
# egrep '^[0-9a-f]{7} (0000[ ]*){8}' dump | wc -l
715761
Jag har kortat av output från fdisk och mkfs av platsskäl.

715761 av 719873 rader innehåller alltså:
Kod:
<offset> 0000 0000 0000 0000 0000 0000 0000 0000
715761*16 = 11452176 bytes av 719873*16 = 11517968 bytes har värdet 0x00 (NOTERA: Här har jag utelämnat alla 0 som ligger på en rad som innehåller någonting annat än 0).

11452176/11517968 = 0.9942878813346243
99.4% är då av värdet 0.

Rader som inte innehåller 0 är 65792 stycken.
65792*16 = 1052672 bytes som inte är en rad av 16 nollor.

1052672 bytes är strax över 1MB, kom ihåg output från df -h:
Kod:
# df -h /mnt/
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              11M  1.1M  9.0M  11% /mnt
Allt utom det använda utrymmet verkar mycket riktigt ha blivit överskrivet.

Peka gärna ut eventuella fel i mitt resonemang.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in