9
февраль
2021
14:21

Тщательная очистка следов файлов на диске при помощи команд SFill и DD

9 февраль 2021 14:21

Однажды мне пришлось отдать сотруднику USB флешку, на котором хранились как программы так и личные фотографии. Фотографии я удалил, но они остались в секторах и их сотрудник смог бы их восстановить, если бы захотел. Поэтому, нужен способ очистки свободного пространства на диске. Нашёл команду, как это сделать - работает с файловыми системами NTFS, FAT и EXT3. Программа командной строки называется SFill.

Выборочная очистка свободного пространства после удаления файлов при помощи команды sfill

Команда sfill позволяет выборочно уничтожать информацию на диске - очистка удаленных файлов в каталоге INODE и оставшихся после удаления следов файлов в свободной части диска.

  1. Установить sfill

    sudo apt-get install secure-delete

  2. Прочитать документацию (желательно)

    dpkg-query -L secure-delete
    gzip -dc /usr/share/doc/secure-delete/secure_delete.doc.gz | more

Формат команды:
sfill [-i] [-I] [-f] [-l] [-l] [-v] [-z] target-directory
где
-i затереть только свободное пространство inode (уничтожение удаленных каталогов)
-I уничтожить только свободное пространство (не затрагивая каталогов inode)
-f быстрая запись (исключает команды O_SYNC и sync()) что ускоряет работу, но менее надёжно
-l ослабление безопасности в угоду скорости. Используются только проход случайными числами и затем второй проход 0xFF
-l дальнейшее ослабление безопасности и повышение скорости - лишь один проход, который затирает диск 0xFF
-v вывод информации о ходе выполнения (verbose)
-z вместо случайных данных используются нули (zero)
target-directory - целевой каталог для очистки (обычно - корневой каталог диска)

  1. Узнать имя точки монтирования флешки, которую собираемся очищать

    lsblk

    (См. столбец "MOUNTPOINT" - выделяем значение и копируем в буфер обмена).

  2. Запустить очистку диска или каталога

Например, быстрая очистка флешки:

lsblk
sfill -fllvz /media/vladimir/8C3E-FFF0

Сообщение "Warning: you are not root. You might not be able to wipe the whole filesystem." игнорируем.

Во время выполнения видно, что создается большой файл oooooooo.ooo, размером со свободное пространство диска, состоящий из нулей.

Вначале удаляются файлы затем удаленные каталоги: "Wiping inodes ... Done ... Finished".

Команду можно запускать также и с административными правами (пользователя root):

sudo sfill -fllvz /media/vladimir/8C3E-FFF0

NB: В команде используется имя каталога, а не физического устройства.

Как сделать полную очистку диска средствами ОС Linux - команда dd

Способ 1:

sudo dd if=/dev/zero of=/dev/sdb bs=1M

где sdb - имя устройства.

Диск будет заполнен нулями (0x00)- затрется таблица разделов, область файлов и свободное место.

Недостаток данного способа очистки очевиден - нельзя выборочно очистить только свободное место, оставив на диске какие-либо нужные файлы.

Способ 2:

sudo dd if=/dev/urandom of=/dev/sdb bs=1M

То же самое что способ 2, но заполняются случайными числами 0xda 0x02 и т.д.. Недостаток у способа один - неизбирательное удаление, и уничтожение разметки диска.
Преимущество - максимальная скорость очистки диска.

Способ 3:

Имена разделов можно узнать, например, при помощи команды

df -h | grep /sd

Команда для очистки выбранного раздела:

dd if=/dev/zero of=/dev/sdb1 bs=1M

Будет быстро очищен только выбранный том (раздел), например sdb1.

При этом способе, команда dd уничтожает всю информацию на диске, включая файлы и каталоги.

Как создать разделы и отформатировать чистый диск средствами Linux

sudo apt-get install gparted
sudo gparted

Подробное описание работы с утилитой gparted приведено с статье https://pingvinus.ru/note/harddrive-format-ubuntu-linux.



Похожие публикации