Гид по технологиям

Как навсегда удалить файл в Linux с помощью shred

7 min read Linux Обновлено 05 Jan 2026
Как навсегда удалить файл в Linux — shred
Как навсегда удалить файл в Linux — shred

Важно: перед выполнением команд всегда делайте резервные копии и проверяйте цель. Ошибочная команда может уничтожить важные данные без возможности восстановления.

Что такое shred и как он работает

shred — это консольная утилита, которая многократно перезаписывает содержимое файла случайными байтами, а затем (опционально) затирает блоки нулями и удаляет файл. Идея похожа на бумажный шредер: вместо того чтобы просто убрать ссылку на файл, shred разрушает его содержимое, чтобы восстановление было практически невозможным.

Простая аналогия: если вы просто кидаете бумагу в корзину, кто‑то может её развернуть. Если бумагу измельчить на ленты, восстановить текст гораздо сложнее. shred выполняет цифровое «измельчение» путём перезаписи битов.

Ключевые принципы работы:

  • Перезапись данных. По умолчанию shred выполняет 3 прохода с рандомом и один проход нулями (итого 4 прохода). Это снижает риск восстановления остаточных магнитных наслоений на жестких дисках магнитного типа.
  • Затирание метаданных. shred пытается перезаписать inode и метаданные, но не всегда это возможно в зависимости от файловой системы.
  • Удаление файла. При использовании флага удаления shred удаляет файл из каталога после перезаписи.

1‑строчное определение: shred — инструмент для многократной перезаписи и опционального удаления файлов, созданный чтобы уменьшить вероятность восстановления данных.

Когда не использовать shred

shred не всегда эффективна. Ниже перечислены ситуации и типы хранилищ, где shred либо не гарантирует безопасность, либо может навредить носителю.

  • Журнальные или лог-структурированные файловые системы: ext3 (в journal‑режиме), XFS, JFS — файлы могут быть перемещены или записаны в журнал, поэтому физическое перезаписывание исходных блоков не гарантируется.
  • RAID‑массивы и контроллеры с кэшированием: данные могут записываться на других устройствах или в кэше, которые shred не затрагивает.
  • Файловые системы со снепшотами (snapshots): снимки сохраняют старые версии данных, которые остаются доступными.
  • Сжатые файловые системы: логика перезаписи меняется, и перезапись логического файла не гарантирует перезапись исходных блоков на диске.
  • SSD и флеш‑накопители: из‑за wear‑leveling контроллер может записать данные в другие физические ячейки, оставив оригинальные. Частые перезаписи также сокращают ресурс SSD.

Важно: shred работоспособен на традиционных HDD и некоторых конфигурациях ext3/ext4 при соответствующих режимах (data=writeback, data=ordered). Но для SSD и систем с копированием при записи (COW — Copy On Write) он ненадёжен.

Основной синтаксис и примеры использования

Базовый синтаксис:

shred options filename

Где options — флаги, filename — путь к файлу.

Удаление файла навсегда

Флаги, часто используемые вместе:

  • -u — удалить файл после перезаписи
  • -v — подробный вывод (verbose)
  • -z — в конце выполнить проход нулями (скрывает признаки перезаписи)

Команда:

shred -uvz textfile.txt

Это выполнит 3 прохода случайными данными, затем проход нулями, попытается перезаписать inode и удалит файл.

Кнопка удаления файла на клавиатуре

Просто перезаписать нулями без удаления

Если нужно только «сломать» содержимое, но сохранить имя файла:

shred -vz textfile.txt

Указать число проходов

Флаг -n или –iterations задаёт число проходов со случайными данными. Однако shred всегда добавляет ещё один проход (обычно нулевой, если -z указан).

Пример для шести общих перезаписей (передаём 5):

shred -uvz -n 5 textfile.txt
shred -uvz --iterations 5 textfile.txt

Примечание: для практической безопасности 3 прохода чаще всего достаточны; дополнительные проходы значительно удлиняют процесс.

удаление файлов с помощью shred в linux

Удалить несколько файлов

Передайте имена файлов через пробел:

shred -uvz file1.txt file2.txt file3.txt

Или используйте шаблоны:

shred -uvz *.txt

перезапись файла нулями в linux

Частичное затирание файла

Можно перезаписать только начальные N байт файла с помощью -s или –size. Это полезно, если достаточно повредить заголовок (например, испортить исполняемый файл или архив):

shred -vz -s 1K textfile.txt
shred -vz --size 1K textfile.txt

Это перезапишет первые 1 килобайт файла. Текстовый файл при этом может оставаться читаемым, но пакеты и бинарники, скорее всего, перестанут работать.

файл перед частичным затиранием

частичное затирание файла

файл после частичного затирания

Поддерживаемые суффиксы размера: K (килобайты), M (мегабайты), G (гигабайты).

Получить справку по команде

shred --help

страница руководства для shred

Практическое руководство: когда применять shred и альтернативы

Если вы используете традиционный HDD и локальную файловую систему без журналирования или с подходящими режимами, shred — подходящий инструмент для безопасного удаления отдельных файлов. Но зачастую требуются другие подходы.

Альтернативы и дополнения:

  • srm (secure rm) — часть пакета secure-delete; реализует безопасное удаление с учётом некоторых особенностей ФС.
  • wipe — утилита для перезаписи свободного места или файлов.
  • Полное шифрование диска (LUKS, VeraCrypt) — лучший защитный механизм: если диск был зашифрован до записи, удаление ключа делает все данные недоступными.
  • Полное форматирование с перезаписью (wipefs/dd) — полезно при подготовке диска к утилизации.
  • Физическое уничтожение — единственный гарантированный способ при крайней необходимости (для крайне чувствительных данных).

Когда лучше не использовать shred:

  • На SSD: используйте команды ATA Secure Erase, утилиты производителя или шифрование. Если диск был зашифрован с самого начала, изменение ключа или безопасное удаление ключей к шифрованию — быстрый способ обезопасить данные.
  • На системах с моментальными снапшотами: удаление файла не удаляет его из снапшота.

Пошаговый мини‑метод для безопасного удаления файла

  1. Определите тип хранилища и файловой системы (lsblk, lsblk -f, df -T).
  2. Если это SSD — не используйте shred; рассмотрите ATA Secure Erase или шифрование.
  3. Если это HDD и ФС поддерживает перезапись, используйте shred с -u -v -z и 2–4 прохождений.
  4. Проверьте, нет ли снапшотов или RAID — если есть, очистите их отдельно.
  5. После удаления проверьте свободное место и при необходимости выполните безопасную перезапись свободного пространства.

Мини‑пример (HDD, ext4 в режиме ordered):

sudo shred -uvz -n 2 /home/user/секретный_файл.txt

Чеклист для ролей

Пользователь:

  • Убедиться, что файл действительно не нужен.
  • Проверить тип накопителя (HDD/SSD).
  • Использовать shred только для HDD или если администратор подтвердил работоспособность на данной системе.

Системный администратор:

  • Определить ФС и режим (journal/data=ordered и т.д.).
  • Проверить наличие снапшотов, бэкапов, RAID.
  • При необходимости предложить шифрование или процедуру Secure Erase для SSD.

Офис безопасности/IT‑менеджер:

  • Утвердить политику удаления данных.
  • Обеспечить процедуру удаления ключей шифрования при утилизации.

Ментальные модели и эвристики

  • Если данные конфиденциальны и диск — HDD: shred или srm подходят.
  • Если диск — SSD: думайте о ключах шифрования и Secure Erase, а не о многократной перезаписи.
  • Если система использует снапшоты/RAID/кэширование: уничтожение одного файла редко достаточно.

Таблица совместимости и советы по миграции

  • ext3 (journal): ненадёжно в journal‑режиме; в режимах data=writeback/data=ordered — работает лучше.
  • ext4: обычно работает для перезаписи на традиционных дисках.
  • XFS, JFS: ненадёжно для shred.
  • Btrfs/ZFS (COW): перезапись логического файла не гарантирует перезапись физических блоков — используйте шифрование/удаление снимков.
  • SSD/NVMe: используйте Secure Erase или шифрование.

Когда shred не сработает: галерея краёвых случаев

  • Файл хранится в снапшоте бэкапа — остаётся в истории.
  • Контроллер RAID записал данные зеркально — оригинальные блоки остаются.
  • Файловая система с компрессией/копированием при записи — группы данных перемещаются.

Риск‑матрица и смягчение рисков

  • Риск: восстановление на HDD при обычной перезаписи — НИЗКИЙ при 3–4 проходах.
  • Риск: восстановление на SSD — ВЫСОКИЙ при использовании shred.
  • Смягчение: использовать шифрование, Secure Erase, физическую утилизацию.

Примеры команд и шаблоны для сценариев

Удалить все .log в текущей директории (HDD, проверено):

shred -uvz *.log

Перезаписать свободное место (для очистки ранее удалённых файлов) — пример с dd (внимание: риск ошибок):

dd if=/dev/zero of=./bigfile.tmp bs=1M status=progress || true
rm -f bigfile.tmp

Этот приём создаёт файл, заполняющий свободное пространство нулями, затем удаляет его.

Краткое руководство по безопасности для SSD

  • Первым делом рассматривайте полное шифрование (LUKS) при развёртывании.
  • Для существующих SSD используйте встроенные команды Secure Erase (hdparm для SATA, vendor tools для NVMe) или службу производителя.
  • Если диск зашифрован и ключ удалён, данные практически недоступны даже при физическом доступе.

Критерии приёмки

  1. Нельзя восстановить конфиденциальный файл с помощью общедоступных инструментов восстановления.
  2. На HDD файл был перезаписан минимум 3–4 прохода и удалён из каталога.
  3. На SSD использованы альтернативы: Secure Erase или удалён ключ шифрования.

Заключение

shred — удобный инструмент для многократной перезаписи и удаления файлов на традиционных жёстких дисках. Он даёт высокий уровень уверенности в невозможности восстановления данных при правильном использовании и на подходящих файловых системах. Однако для современных SSD, систем со снапшотами, компрессией или RAID‑массивами нужны другие методы: полное шифрование, Secure Erase, удаление снимков или физическое уничтожение диска.

Итого:

  • Проверяйте тип накопителя и файловой системы перед использованием shred.
  • Для SSD применяйте специализированные методы.
  • При высокой конфиденциальности используйте шифрование как превентивную меру.

Краткое резюме

  • shred многократно перезаписывает и опционально удаляет файл.
  • Не эффективен на SSD, в RAID, на файловых системах со снапшотами и многих журналируемых ФС.
  • Альтернативы: srm, wipe, Secure Erase, полное шифрование и физическое уничтожение.

Примечания

  • Команды в статье выполняются с правами пользователя; для системных файлов может потребоваться sudo.
  • Всегда проверяйте, что вы целите в нужный файл или директорию.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

WingetUI — GUI для Windows Package Manager
Программное обеспечение

WingetUI — GUI для Windows Package Manager

Селективное окрашивание в Snapseed
фото редактирование

Селективное окрашивание в Snapseed

Как печатать en и em тире на Mac, Windows и Linux
Практика

Как печатать en и em тире на Mac, Windows и Linux

Microsoft Teams — ошибка 503: как исправить
IT-поддержка

Microsoft Teams — ошибка 503: как исправить

Установка обложки альбома в Google Фото
Инструкция

Установка обложки альбома в Google Фото

Как создать комнату в Clubhouse — полное руководство
Руководство

Как создать комнату в Clubhouse — полное руководство