Если у вас есть файл с конфиденциальной информацией, может быть недостаточно просто удалить его с помощью команды rm или нажать клавишу Delete. Удаление файла командой rm обычно только удаляет его из нашего каталога. Удаленный файл остается на диске и может быть восстановлен и использован злоумышленником, обладающим необходимыми навыками.
В Linux можно использовать команду shred для безопасного удаления файлов путем многократной перезаписи файла тарабарскими данными. Это делает восстановление исходных данных весьма затруднительным или практически невозможным, даже если удаленный файл удастся восстановить. Команда Shred не только перезаписывает файл, но и удаляет его, если это указано. Ее также можно использовать для перезаписи разделов или всего диска.
В этой статье мы объясним, как использовать команду shred в Debian 11 для безопасного удаления файлов. Эта же процедура может быть использована и в других версиях Debian и Ubuntu. Мы также обсудили некоторые опции командной строки.
Работа с командой Shred
Команда Shred является одной из основных утилит GNU и доступна практически в любой системе Linux, включая Debian.
Синтаксис команды shred
Ниже приведен синтаксис команды shred:
1 | shred option <FILE> |
Где "FILE" может быть файлом или любым разделом жесткого диска.
Когда вы используете команду shred без каких-либо опций, она многократно перезаписывает файл тарабарскими данными. Чтобы понять, что делает команда shred, давайте создадим тестовый файл с именем "testfile.txt" с некоторым текстом в нем.
1 | echo "Этот файл содержит некоторый пример текста" > testfile.txt |
Вот как выглядит наш примерный файл:
После создания файла также проверьте его размер. Мы будем использовать его позже для сравнения с размером измельченного файла.
1 | ls -l testfile.txt |
Теперь запустите команду shred (без каких-либо опций командной строки), а затем имя файла, который вы хотите уничтожить.
1 | shred testfile.txt |
Приведенная выше команда перезапишет файл testfile.txt три раза (по умолчанию). Чтобы посмотреть, что произошло с тестовым файлом, вызовите команду cat:
1 | cat testfile.txt |
Из вывода команды cat вы увидите только тарабарщину внутри файла.
Кроме того, если вы посмотрите на размер файла, вы заметите, что он увеличился.
Параметры командной строки Shred
Команда shred имеет несколько опций командной строки, позволяющих расширить ее функциональные возможности. Давайте рассмотрим несколько примеров работы этих опций.
Подробный вывод
Используя опцию -v или -verbose, вы можете просмотреть, что происходит в фоновом режиме.
1 | shred -v testfile.txt |
Следующий вывод показывает три прохода перезаписи файла случайными числами.
Далее во всех следующих примерах мы будем использовать опцию -v для отображения вывода.
Перезапись нескольких файлов
Если у вас есть несколько файлов, вы можете уничтожить их одной командой вместо того, чтобы уничтожать их по одному с помощью отдельных команд. Чтобы уничтожить несколько файлов, введите их все в качестве аргумента (через пробел) или используйте символ подстановки, чтобы указать все файлы с одинаковыми расширениями.
1 | shred -v testfile1.txt testfile2.txt testfile3.txt |
Все три файла будут уничтожены в одном процессе, как показано на следующем снимке экрана.
Перезапись дисков
Вы также можете использовать команду shred для перезаписи дисков и разделов. Например, чтобы перезаписать все данные на разделе /dev/sda2, выполните следующую команду:
1 | sudo shred -v /dev/sda2 |
Перезапись нулями
Обычно команда shred перезаписывает файл случайными данными. Однако в вашей системе будет заметно, что операция уничтожения была выполнена на этом устройстве. Вы можете скрыть процесс уничтожения, используя опцию -z или -zero в команде shred.
При использовании команды shred с опцией -z или -zero сначала файл перезаписывается случайными числами, а затем добавляется окончательная перезапись нулями.
1 | shred -vz testfile.txt |
В приведенном выше выводе видно, что после трехкратной перезаписи файла случайными числами, shred окончательно перезаписал файл нулями.
Выборочная перезапись
Команда shred перезаписывает файлы 3 раза случайным мусором. Чтобы увеличить количество проходов перезаписи, используйте опцию -n или -iterations.
Например, чтобы уничтожить testfile.txt, используя 5 проходов перезаписи, команда будет выглядеть следующим образом:
1 | shred -vn5 testfile.txt |
Перезаписать только первые x байт
По умолчанию команда shred перезаписывает весь файл. Использование опции -s или -size в команде shred позволяет перезаписать только первые x байт. Например, чтобы перезаписать только первые 6 байт файла testfile.txt, выполните следующую команду:
1 | shred -vs6 testfile.txt |
Приведенная выше команда перезапишет только первые 6 байт указанного файла. Вы можете убедиться в этом, вызвав команду cat.
Удаление файла после перезаписи
Как говорилось ранее, команда shred перезаписывает файл только в том случае, если мы используем ее без каких-либо опций командной строки. Однако после перезаписи вы можете удалить файл, используя опцию -u или -remove в команде shred. Обратите внимание, что она также переименует файл перед удалением.
1 | shred -vu testfile.txt |
Из приведенного выше результата видно, что файл был окончательно удален после перезаписи и переименования.
Просмотр справки
Чтобы получить более подробную информацию о команде shred, используйте опцию -help или посетите страницу man:
1 | shred --help |
Или
1 | man shred |
В этой статье вы узнали, как использовать команду shred в Debian вместе с различными опциями командной строки. Вы видели, как команда shred перезаписывает и удаляет файлы, делая их трудновосстановимыми с помощью каких-либо инструментов восстановления.