shred

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Для повышения эффективности процесс удаления файла из хранилища с помощью команды rm обычно стирает только запись файла в файловой системе, сохраняя при этом содержимое файла нетронутым. Это часто позволяет общедоступному программному обеспечению восстановить данные «стертого» файла. Если данные файла хранятся на магнитном носителе, например на жестком диске, даже если файл перезаписывается, остаточные магнитные поля могут позволить восстановить данные с помощью специального аппаратного оборудования. Чтобы предотвратить это, шред несколько раз перезаписывает содержимое файла, используя шаблоны, выбранные для максимального уничтожения остаточных данных.

   shred [ключи] [файл]

Утилита предназначена для перезаписи указанного файа несколько раз, чтобы сделать его более трудным даже для очень дорогого аппаратного зондирования для восстановления данных[2].

Опция Описание
-f, --force Изменение прав записи на файл.
-x, –exact Не округлять размеры файлов до следующего целого блока; по умолчанию для не-регулярных файлов
- z, –zero Перезаписать конец файла нулями, чтобы скрыть затирание файла
-v, –verbose Показывать ход выполнения.
-s, –size Очистить N байт (возможны суффиксы вида K, M, G).
-n, –iterations=N Количество циклов перезаписи (по умолчанию — 25)
-u, –remove Удаляет файл после его перезаписи.
--remove=N Подобно -u, но задаёт как удалить файл. Может принимать следующие параметры:
  • unlink — использовать стандартный вызов unlink.
  • wipe — сначала перезаписать байты имени.
  • wipesync— по умолчанию, синхронизировать каждый испорченный байт на диске.
--help Выдать подсказку на стандартный вывод и успешно завершиться.
--version Выдать информацию о версии на стандартный вывод и успешно завершиться.

Пример использования

[править | править код]

После выполнения данной команды:

   shred -z -v -u -n 5 test

Файл перезапишется нулями, будет показан ход выполнения, он будет удалён после перезаписи, но перед этим он перезапишется 5 раз.

Применение

[править | править код]

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

shred полагается на предположение, что ваша файловая система перезаписывает файлы «на месте». Традиционно это так, но многие современные файловые системы не удовлетворяют этому условию. Ниже приведены примеры файловых систем, на которых shred не эффективен или не даёт гарантии эффективности во всех режимах файловой системы[3]:

  • Протоколируемые или журналируемые файловые системы, которые идут в комплекте (AIX, JFS, ReiserFS, XFS, Ext3, и др.)
  • Файловые системы, которые записывают избыточные данные и сохраняют работоспособность даже если случаются неудачные записи, например, файловые системы, основанные на технологии RAID.
  • Файловые системы, создающие копии состояния, такие как NFS-сервер от Network Appliance.
  • Файловые системы, кэширующие файлы во временных хранилищах, такие как NFS версии 3 и др.
  • Сжатые файловые системы.

Примечания

[править | править код]
  1. Ubuntu Manpage: scrub - write patterns on disk/file. manpages.ubuntu.com. Дата обращения: 6 апреля 2022. Архивировано 31 декабря 2019 года.
  2. shred(1) - Linux man page. Дата обращения: 1 августа 2019. Архивировано 10 мая 2020 года.
  3. Проект OpenNet: MAN shred (1) Команды и прикладные программы пользовательского уровня (FreeBSD и Linux). Дата обращения: 1 августа 2019. Архивировано 20 августа 2019 года.