Немного предыстории. Обладая неслабой паранойей, я заморочился мыслью о том, каким образом можно раз и навсегда удалить файлы с жёсткого диска в ОС Ubuntu.
Моя проблема состояла в том, что я уже удалил конфиденциальные файлы, а только потом узнал, как нужно было всё сделать правильно. Но и на этот случай нашёлся способ. Итак, знакомьтесь — команда shred.
Не все знают, что удаляя файл посредством rm или через файловый менеджер, сам файл не удаляется, а затирается лишь его индекс и пространство, которое занимал файл, записывается системой как свободное для записи. Файл, как вы уже поняли, так и остался на своём месте и восстановить его оттуда не составит большого труда. Он пролежит там до тех пор, пока на его место вы не запишите другую информацию.
Shred случайными числами заполняет место, занятое файлом. И уже, даже восстановив ваш удалённый файл, его будет невозможно прочитать. По умолчанию shred не удаляет файл, для этого используется параметр --remove (-u).
shred -u /path/to/file
В shred заложен 25-тикратный цикл, то есть программа перезапишет файл случайным содержимым 25 раз. Чтобы изменить это значение, например на 35-тикратный:
shred -u -n 35 /path/to/file
Если ваша паранойя достигла ещё бОльшего уровня, то вам подойдут следующие советы.
Чтобы спрятать информацию о том, что вы зачищали файл, используйте параметр -z, добавляющий нули в конец файла — это сделает файл непохожим на зашифрованный. Если вам интересно наблюдать за процессом перезаписи, параметр -v (verbose) служит для подробного вывода информации прогресса.
shred -u -z /path/to/file
Если хотите удалить сразу несколько файлов, то укажите их в таком формате:
shred -u -z -n 30 /path/to/file1 /path/to/file2 /path/to/file3
или же можно использовать маску:
shred -u -z -n *.txt
Shred также может удалить содержимое всего жёсткого диска командой
shred /dev/sda
Естественно, время выполнения операций напрямую зависит от размера файла и скорости записи.
Единственным минусом я обнаружил то, что shred не умеет удалять каталоги. В этом нам на помощь приходит утилита wipe:
wipe -rf /path/to/catalog
Для более подробной информации используйте man shred и man wipe.
В моём случае, когда я уже удалил файлы, мне не хотелось восстанавливать файлы и потом «правильно» удалять, ввиду их большого размера. Оставалось одно — перезаписать другой информацией. Информацией, ничего в себе не несущей. В этом мне уже пришла на помощь утилита dd
dd if=/dev/zero of=/path/to/file.trash bs=1M count=1024
где значением count является нужный мне размер файла. 1024 = 1Гб, 2048 = 2Гб и т.д.
После создания файла, удалил его уже посредством shred'а.
Автор: 11101010