Как безопасно стереть файл при помощи shred

Удаление файлов и форматирование дисков — распространенная задача. Linux предоставляет много утилит для удаления файлов в командной строке.

Самые используемые команды для удаления файлов и директорий — rm и rmdir соответственно. В этой статье мы познакомимся с другой командной — shred. С ее помощью можно стирать диски и удалять файлы безопасным образом.

Что собой представляет команда shred в Linux?

Команда shred позволяет несколько раз перезаписывать данные в одном и том же месте. Такая перезапись затрудняет восстановление данных при помощи сторонних программ и оборудования. Поэтому данная команда широко используется для безопасного удаления файлов.

Синтаксис команды shred

# Стирание файла 
shred [OPTION] filename 

# Стирание диска; path нужно заменить на путь вашего диска 
shred -vfz [/file/system/path]

Согласно странице man, с командой shred можно использовать несколько опций, например:

-n, --iterations=N

Вы можете перезаписать данные N раз вместо 3, принятых по умолчанию

-f, --force

Принудительное изменение прав доступа, при необходимости разрешающее запись

-v, --verbose

Вывод подробной информации о выполнении

-u, --remove

Обрезка и удаление файла после перезаписи.

Чем shred отличается от rm?

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

Но когда вы используете команду shred, файл перезаписывается указанное число раз, делая содержимое файла невосстановимым.

Еще одно различие команд заключается в скорости их выполнения. Обычно rm работает быстрее, чем shred. Это и понятно: shred нужно перезаписать файл несколько раз перед удалением. Скорость работы этой команды будет зависеть и от количества итераций, и от размера файла (диска). А rm просто удаляет указатель на файловую систему.

Как работает команда shred?

По умолчанию команда shred прогоняет файл через три итерации перезаписи. Число итераций можно изменить при помощи опции -n.

Когда стоит использовать команду shred?

Применяйте shred для удаления конфиденциальных данных. Этой командой могут часто пользоваться системные администраторы, команды IT-криминалистов и специалисты по информационной безопасности.

Примеры применения shred

ВНИМАНИЕ! Прежде чем запускать любой из примеров в своей системе, убедитесь, что у вас есть бэкап вашего файла и файловой системы. Пожалуйста, будьте осторожны: удаленные данные будет невозможно восстановить!

Как перезаписать и удалить файл при помощи shred

У нас есть файл poem.txt со следующим контентом:

Давайте перезапишем его содержимое трижды (поведение shred по умолчанию):

shred -v poem.txt

Опция -v нужна для подробного вывода.

Давайте еще раз посмотрим содержимое файла:

cat poem.txt

Мы видим, что текст в файле был изменен и стал нечитаемым.

Теперь мы можем безопасно удалить этот файл, выполнив rm poem.txt.

Но команду shred можно использовать более эффективно: мы можем перезаписать контент, скрыть перезапись и удалить файл одной командой. Давайте изменим нашу команду и запустим ее:

shred -vzu -n5 poem.txt

Здесь:

  • -v обеспечивает подробную информацию о выполнении команды
  • -z заменяет итоговый путь нулями для скрытия шреддинга
  • -u удаляет файл после перезаписи, т. е. нам не придется запускать следом rm
  • -n изменяет количество итераций перезаписи (мы поставили 5 вместо 3).

Результат

На скрине снизу видно, что файл был перезаписан 5 раз. На финальной (дополнительной) итерации файл был перезаписан исключительно нулями (это благодаря добавлению опции -z). При удалении файла также изменялось его имя, благодаря чему его невозможно будет найти после шреддинга.

Как стереть раздел диска при помощи shred

Предположим, вы хотите продать свой диск и вам нужно его почистить. С помощью shred вы можете стереть весь диск:

# /dev/sde замените на вашу точку монтирования
sudo shred -vfz /dev/sde

Здесь:

  • -v обеспечивает подробную информацию о выполнении команды
  • -f обеспечивает принудительное добавление права на запись, если оно пропущено
  • -z перезаписывает содержимое диска нулями на последней итерации перезаписи

Команду shred также можно применять к RAID-разделам:

shred -vfz -n 10 /dev/md1

Когда команда shred неэффективна?

В некоторых случаях применять shred нецелесообразно. Например, когда речь идет о:

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

Итоги

Команда shred обеспечивает невозможность восстановления данных в файле. Если не учитывать некоторые исключения, shred удаляет файлы лучше и безопаснее, чем rm.

Перевод статьи «How to Securely Erase a Disk and File using the Linux shred Command».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх