Вы когда-нибудь задумывались, куда пропадают файлы, после того, как вы их удалили? Есть ли «рай» и «ад» файлов, что с ними там делают? Вообще, гуманно ли удалять файлы?
А сталкивались ли с программами, которые «восстанавливают» файлы — этакие некроманты из мира IT! Как они работают, почему это возможно?
Ну и как сделать так, чтобы никакой некромант так и не смог восстановить то зло, которое было спрятано в папке «Корпоратив 2016″…
Думаю, вы уже ни раз удаляли файлы случайно, а потом восстанавливали их из корзины. Всё потому что они на самом деле не удаляются, а переносятся в каталог/папку/директорию «Корзина» — в разных системах она лежит в разных местах.
А теперь более интересный «ой!» — удалили важный файл из корзины. И как тогда? Да только и тут файлы не удаляются. Они как лежали на жёстком диске, так и лежат. Просто теперь у них нет названия и место, где они лежат система пометила как свободное. И даже на этом этапе их можно восстановить.
Ну хорошо, в какой-то момент система решила перезаписать эти ячейки на жёстком диске какой-то другой информацией. Да только вот физика так не думает — в местах жёсткого диска всё ещё есть «след» старых данных, эхо, доносящееся сквозь перезаписи…
Ничто не умирает, всё в каком-то виде живёт!
Поэтому, если вы вдруг решите действительно удалить файл — вам понадобится его перезаписать на много-много раз и удалить. Тогда просто не будет технических средств разобраться, что там лежало (информацию будет слишком сложно достать, но она всё ещё будет!).
В Linux, FreeBSD и MacOS для этого можно воспользоваться утилитой shred — она как шредер измельчит файлы. Её можно найти в пакете программ coreutils:
brew install coreutils
— например.
В Linux она так и называется «shred». Во FreeBSD и MacOS — «gshred» — мол GNU. Использовать её довольно просто:
sudo shred -uvz -n50 mysecretfile.txt
Что значат эти параметры:
-u (--remove)
– урезать и удалить файл после перезаписи;-n (--iterations) N
– перезаписывать N раз вместо определенных по умолчанию;-z (--zero)
– в последний раз перезаписать файл нулями, чтобы скрыть работу программыshred
.-v (–-verbose)
позволит вам наблюдать происходящее на экране (но обычно такое скрывают).
К сожалению утилита shred
не даст ожидаемого результата на журналируемых или основанных на журналах файловых системах (JFS, ReiserFS, XFS и т.д.) а также системах, отмечающих и записывающих все операции с файлами (RAID). Там всё ещё немного сложнее…
Не знаю, спас ли я кого-то этой заметкой, но пищу для размышлений, надеюсь, дал.