Как безопасно удалить файлы в Linux с помощью shred
Когда вы удаляете файл на своем компьютере, система очищает блоки в вашем хранилище, удаляя ссылку на файл. Файл не исчезает внезапно и по-прежнему доступен с помощью расширенного программного обеспечения, которое может быть не тем, что вам нужно.
Любой, у кого есть инструмент для восстановления файлов, может извлечь эти удаленные файлы из вашего хранилища и просмотреть их содержимое. Но что, если вы этого не хотите? И как лучше всего удалить файлы в Linux, чтобы никто не смог их восстановить?
Вот когда в игру вступает утилита shred. В этой статье мы подробно обсудим команду shred, ее ограничения и то, как использовать ее для безопасного удаления файлов в Linux.
Что такое клочок и как он работает?
Shred – это утилита командной строки, которая несколько раз перезаписывает содержимое файла случайными данными, чтобы сделать его невозможным для восстановления. Он также позволяет удалить файл после перезаписи его данных.
«Почему он перезаписывает содержимое файла?», – спросите вы. Давайте разберемся с этим на примере. Учтите, что вам нужно скрыть или «удалить» содержимое, написанное на листе бумаги. Конечно, его можно скомкать и выбросить в мусорное ведро. Но любой может взять скомканный комок бумаги, распрямить его и прочитать содержание.
С другой стороны, измельчитель бумаги разрезает лист бумаги на тонкие полоски или куски, что делает практически невозможным отменить процесс и просмотреть содержимое.
Именно так работает команда shred в Linux. Он перезаписывает содержимое файла несколько раз строками нулей, что делает невозможным просмотр исходного содержимого для кого-либо. И после этого он может безопасно удалить файл из вашего системного хранилища, если хотите.
Когда не использовать клочок
Помните, что клочок не работает эффективно во всех ситуациях. Согласно странице руководства shred , утилита неэффективна при использовании в определенных файловых системах. А это:
- Журналируемые или журналируемые файловые системы (ext3, XFS и JFS).
- Файловые системы на основе RAID.
- Файловые системы, в которых хранятся снимки.
- Файловые системы, в которых хранится кеш.
- Сжатые файловые системы.
На странице руководства shred также указано, что команда не работает с ext3, только если она находится в режиме журнала . Однако в режимах данные = обратная запись и данные = упорядоченный инструмент работает как шарм.
Кроме того, вам не следует использовать утилиту shred на твердотельных накопителях, поскольку дополнительный процесс стирания и записи может повредить ваше хранилище.
Как использовать команду shred
С помощью shred вы можете либо перезаписать и удалить файл, либо просто перезаписать файл, не удаляя его.
Базовый синтаксис
Основной синтаксис команды:
shred options filename
… где параметры – это различные флаги, используемые для вызова методов команды, а имя файла – это абсолютный или относительный путь к файлу, с которым вы хотите работать.
Удалить файл навсегда
Чтобы окончательно удалить файл с помощью уничтожения , используйте флаг -uvz с командой по умолчанию.
- u : удаляет файл из хранилища
- v : отображает вывод в подробном режиме
- z : перезаписывает файл нулями
shred -uvz textfile.txt
По умолчанию shred перезаписывает файл четыре раза. В первых трех проходах он перезаписывает содержимое файла случайными данными. На последнем проходе из-за флага -z он перезаписывает данные нулями. Shred также перезаписывает индексный дескриптор, удаляя все метаданные, связанные с файлом.
Выход:
Заменить файл нулями
Чтобы просто перезаписать файл нулями, не удаляя его из вашей системы, удалите флаг -u из предыдущей команды.
shred -vz textfile.txt
Выход:
Установите количество перезаписей
Как упоминалось выше, shred перезаписывает данные в файле четыре раза. Если вы хотите указать конкретное количество перезаписей, вы можете сделать это с помощью флага -n или –iterations .
Однако обратите внимание, что shred всегда будет добавлять еще один проход к указанному вами числу. Поэтому, чтобы перезаписать файл шесть раз, передайте в команде цифру пять:
shred -uvz -n 5 textfile.txt
shred -uvz --iterations 5 textfile.txt
Трехкратной перезаписи файлов более чем достаточно, чтобы никто не смог восстановить данные. Все, что выше, просто требует больше времени, не оказывая значительного эффекта.
Удалить несколько файлов с помощью измельчения
Чтобы удалить несколько файлов, просто передайте имена файлов, разделенные символом пробела .
shred -uvz file1.txt file2.txt file3.txt
Если у вас есть каталог, содержащий файлы аналогичного типа, вы можете использовать подстановочные знаки, такие как звездочка ( * ), для удаления или перезаписи файлов. Например, чтобы удалить все файлы TXT в текущем рабочем каталоге:
shred -uvz *.txt
Уничтожьте часть файла
Используя shred, вы также можете сделать файл поврежденным, измельчив его начальные байты. Например, вы можете перезаписать или удалить начальный 1 КБ файла. Для этого вам понадобится флаг -s или –size .
Хотя вы сможете отображать текстовый файл даже после его частичного измельчения, файлы пакетов или исполняемые файлы не будут запускаться после выполнения команды.
shred -vz -s 1K textfile.txt
shred -vz --size 1K textfile.txt
Исходный текстовый файл:
Выполнение команды:
Текстовый файл после выдачи команды:
Shred принимает в команде следующие три суффикса:
- K : килобайт
- M : мегабайты
- G : гигабайты
Получить справку из командной строки
Хотя команда shred не имеет большого количества методов и параметров, которые вам необходимо запомнить, иногда вам может потребоваться получить доступ к странице руководства по команде для справки.
Флаг –help отображает страницу руководства shred:
shred --help
Выход:
Удалить файлы навсегда в Linux
Linux предоставляет вам простой способ удалить файлы и папки из вашего хранилища. Но это не совсем безопасно. Для доступа к этим удаленным файлам с помощью программного обеспечения для восстановления данных требуется всего несколько щелчков мышью.
Если вы используете общедоступный компьютер и не хотите, чтобы кто-то просматривал ваши файлы и папки, вы можете вместо этого скрыть их. Это гораздо лучший способ запретить кому-либо просматривать ваши личные данные в Linux.