it-swarm-eu.dev

Jak rekurzivně skartuji celý strom adresářů?

Mám adresářový strom, který bych chtěl skartovat pomocí Linuxového nástroje „shred“. Bohužel, skartování nemá -R možnost rekurzivního skartování.

Jak mohu skartovat celý adresářový strom rekurzivně?

50
Steve V.

Pomocí příkazu find proveďte shred rekurzivně:

find <dir> -type f -exec shred {} \;
49
jamesallman

Pozor na skartování!

Ze skartovací stránky:

UPOZORNĚNÍ: Všimněte si, že skartování se opírá o velmi důležitý předpoklad: že systém souborů přepíše data na místě. Toto je tradiční způsob, jak dělat věci, ale mnoho návrhů moderních systémů souborů tento předpoklad nesplňuje. Následuje příklad souborových systémů, ve kterých není skartování účinné nebo není zaručeno, že budou účinné ve všech režimech souborového systému:

  • souborové systémy strukturované nebo žurnálované, jako jsou systémy dodávané se systémy AIX a Solaris (a JFS, ReiserFS, XFS, Ext3 atd.)

  • souborové systémy, které zapisují nadbytečná data a pokračují i ​​v případě selhání některých zápisů, jako jsou například systémy souborů založené na RAID

  • souborové systémy, které vytvářejí snímky, například server NFS Network Appliance

  • souborové systémy, které ukládají do mezipaměti dočasná umístění, například klienty NFS verze 3

  • komprimované systémy souborů

V případě souborových systémů ext3 platí výše uvedené prohlášení o vyloučení odpovědnosti (a skartace tedy má omezenou účinnost) pouze v režimu data = journal, který žurnály ukládají data kromě pouze metadat. V režimech data = objednané (výchozí) a data = writeback je skartování obvyklé. Režimy žurnálování Ext3 lze změnit přidáním volby data = něco k možnostem připojení pro konkrétní souborový systém v souboru/etc/fstab, jak je zdokumentováno na stránce man man (mount mount).

Kromě toho mohou zálohy systému souborů a vzdálená zrcadla obsahovat kopie souboru, které nelze odstranit, a které umožní skartovaný soubor obnovit později.

Řešení: Použijte šifrovaný souborový systém a jednoduše smažte soubory.

28
user unknown

Místo toho použijte bezpečné odstranění.

Sudo apt-get install secure-delete
srm -r pathname

Hotovo. Zabezpečené mazání je mnohem paranoidnější než skartování, používá 38 průchodů namísto 3. Pro rychlé jedno průchody použijte

srm -rfll pathname

získáte méně generátor náhodných dat a pouze jeden průchod.

16
Cookie

Kombinace této odpovědi s nejznámějšími možnostmi skartování pomocí tohoto odkazu přetečení zásobníku ' Trvalé a spolehlivé mazání souborů na CentOS ':

find <directory> -depth -type f -exec shred -v -n 1 -z -u {} \;

Úpravy: Uvědomte si, že nejlepší odpověď pro skartování jediného souboru vynutí synchronizaci, která zapíše změny na médium před odstraněním souboru, protože některé nebo všechny žurnálované souborové systémy mají pufr.

Je-li to možné, měl by příkaz find vyvolat skript Shell v souboru, který běží:

shred -v -n 1 /path/to/your/file #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u /path/to/your/file #overwriting with zeroes and remove the file

na každém souboru.

11
im3r3k
find /your/directory -exec shred {} \;
5
refp
find [dirname] -depth -type f -exec shred -n1 {} \;

Toto provede hloubkové vyhledávání souborů v adresáři [dirname] a poté spustí shred -n1 příkaz pro každý soubor. Při odstraňování souborů a/nebo adresářů přidáte -depth jako výchozí je dobrý zvyk, i když v tomto případě to není nezbytně nutné. Při spuštění tohoto druhu příkazu pomocí rm -rf místo shred, -depth je potřeba, aby se zajistilo, že adresáře nebudou smazány před pokusem o smazání obsahu adresářů (což způsobí chyby).

4
Alexander

Nejdůkladnější metodou shred, kterou jsem našel, která zahrnuje i odstranění adresáře, je mít find zavolat skript, aby měl shred:

  • přepsat soubor
  • synchronizace
  • poté smažte
  • a nakonec zavolejte rm, abyste odstranili názvy adresářů.

Tato metoda také správně zpracovává názvy souborů s mezerami v nich.

Nejprve - skript shred (pojmenoval jsem můj dirShredder.sh a uložil jej do /root adresář:

shred -v -n 1 "$1" #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u "$1" #overwriting with zeroes and remove the file
rm -rvf "$1" # call rm to remove the directories

Potom volejte skript takto:

find /volume1/pathToShred/ -mindepth 1 -depth -exec /root/dirShredder.sh "{}" \;

Nezapomeňte označit znak killit.sh spustitelný soubor (chmod +x) a samozřejmě aktualizujte cestu pro ředitele, kterého chcete skartovat, a do dirShredder.sh pokud jej uložíte někde jinde.

NOTA BENE - shred má problémy se systémy souborů Copy-on-Write (ZFS, BTRFS, et al) a dokonce i se systémy souborů žurnálování. Neexistuje žádný skutečně akceptovaný „nejlepší“ způsob, jak se s tím vypořádat, který jsem našel, kromě „šifrovaných souborových systémů“, ale nejsem si jistý, jak efektivní je to po skutečnosti.
Nejblíže se zdá, že můžete přepsat veškerý prázdný prostor na disku náhodnými daty po operacích skartace (ne nuly, zdá se, že to není vždy spolehlivé.) SSD mohou mít také jiné úvahy (jako TRIM.)

Nebudu se zabývat těmi, existují další odpovědi na Stack (například odpověď @user unknown v této otázce) a spousta diskusí v celé síti, které se zabývají těmito tématy, takže je prohledejte, pokud potřebujete tuto úroveň zabezpečení.

0
JoelAZ