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 , но задаёт как удалить файл. Может принимать следующие параметры:
|
--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 и др.
- Сжатые файловые системы.
См. также
Примечания
- ↑ Ubuntu Manpage: scrub - write patterns on disk/file . manpages.ubuntu.com. Дата обращения: 6 апреля 2022. Архивировано 31 декабря 2019 года.
- ↑ shred(1) - Linux man page . Дата обращения: 1 августа 2019. Архивировано 10 мая 2020 года.
- ↑ Проект OpenNet: MAN shred (1) Команды и прикладные программы пользовательского уровня (FreeBSD и Linux) . Дата обращения: 1 августа 2019. Архивировано 20 августа 2019 года.