8 Простых Способов Безопасно Удалить Файлы в Linux

Женщина, держащая голову и смотрящая на экран ноутбука.

Мы уже рассмотрели, как полностью стереть содержимое вашего жесткого диска, но что делать, если вам нужно навсегда удалить один, два или десяток файлов? Этот гид покажет вам некоторые из самых популярных решений для полного удаления файлов в Linux.

Содержание

    1. Обойти Корзину
    1. Использование shred
    1. Использование dd для отдельных файлов
    1. Использование wipe
    1. Использование Secure Delete
    1. Способ с графическим интерфейсом: Использование Bleachbit
  • Часто задаваемые вопросы

Примечание: Большинство твердотельных накопителей на рынке сегодня поддерживают TRIM для управления своим свободным пространством, функцию в их прошивке, которая перераспределяет их содержимое. В сочетании с файловыми системами с журналированием в Linux, такими как Ext3/4 и Reiser FS, удаление за пределами восстановления отдельных файлов не может быть гарантировано. Единственным решением в таких случаях, к сожалению, является полное уничтожение всех содержимого на SSD.

1. Обойти Корзину

Когда вы удаляете файл, он перемещается в Корзину (также известную как Корзина). Если вы хотите, вы можете обойти папку Корзины. Таким образом, ваши удаленные файлы не будут оставаться в корзине и будут помечены как полностью удаленные. Хотя они все еще могут быть восстановлены, это шаг вперед по сравнению с тем, чтобы они были доступны (в Корзине).

Совет: если вы все же предпочитаете отправлять свои файлы в Корзину, вы все равно можете настроить систему на автоматическую очистку вашей Корзины на регулярной основе.

Окно Dolphin, показывающее содержимое домашнего каталога.

Чтобы удалить файлы в дистрибутиве Linux, таком как Kubuntu с KDE, запустите его файловый менеджер по умолчанию, Dolphin. Нажмите “Меню -> Настроить -> Настроить Dolphin -> Корзина”, чтобы перейти к связанным параметрам. Нет возможности полностью отключить Корзину, но вы можете использовать хитрый трюк, который охватывает большинство случаев: включите Ограничение размера и уменьшите его до минимального значения.

Окно, показывающее настройки квоты Корзины Dolphin.

На нашем диске это составило 10.97 MiB. Dolphin будет очищать содержимое Корзины, когда оно превысит это значение, и это, вероятно, будет происходить каждый второй час при обычном использовании рабочего стола. Другие файловые менеджеры, такие как Nautilus или Nemo, имеют опции, позволяющие вам полностью обойти Корзину.

Окно nemo, показывающее дополнительные настройки Корзины для системы.

Плюсы

  • Легко сделать
  • Предоставляет вам период времени перед окончательным удалением файлов

Минусы

  • Не удаляет оставшиеся метаданные на диске
  • Не очищает данные из файлов

2. Использование shred

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

Если вы хотите навсегда удалить “image.png”, используйте:

shred -uvz -n 4 image.png
  • u говорит shred удалить файл перед его перезаписью.
  • v отображает подробную информацию.
  • z заполняет пространство, занятое данными, нулями, чтобы еще больше уменьшить вероятность восстановления.
  • -n 4 означает пять проходов удаления: shred выполняет один проход по умолчанию, и с помощью “-n” вы можете указать, сколько дополнительных проходов вам нужно для дополнительной безопасности. Общий консенсус заключается в том, что пяти проходов должно быть более чем достаточно для большинства людей.

Окно терминала, показывающее команду shred с 5 проходами.

Чтобы удалить несколько файлов или содержимое папки, используйте подстановочные знаки, такие как:

shred -uvz -n 1 Pictures/images_0?.jpg  
shred -uvz -n 4 Pictures/*.*

В первом случае “?” будет подстановочным знаком для одного символа, и shred удалит файлы с именами “images_01.jpg” и “images_02.jpg”, например.

Во втором случае shred уничтожит все файлы в каталоге “Pictures”, независимо от их имени или типа.

Плюсы

  • Полностью удалит один файл
  • Может использовать сопоставление по шаблону для охвата нескольких файлов

Минусы

  • Некоторые флаги опций неясны
  • Займет много времени для завершения

Совет: изучите, как работают подстановочные знаки, попробовав регулярные выражения на вашем компьютере.

3. Использование dd для отдельных файлов

Программа Data Definition (dd) является еще одной утилитой, которая присутствует почти в каждом дистрибутиве Linux сегодня. Однако, в отличие от shred, одно из самых больших преимуществ dd заключается в том, что он позволяет вам точно настраивать, как вы удаляете файлы в Linux.

Чтобы использовать dd, вам нужно знать точный размер вашего файла в байтах:

ls -l /path/to/your/file | awk '{print $5}'

Окно терминала, показывающее размер файла в байтах.

Вы можете запустить dd над вашим существующим файлом. Например, эта команда заполнит ваш файл нулевыми символами:

dd status=progress bs=your_file_size count=1 if=/dev/zero of=/path/to/your/file

Окно терминала, показывающее работу dd.

Помимо заполнения вашего файла нулевыми символами, вы также можете заставить dd стереть ваш файл с помощью псевдослучайных данных:

dd status=progress bs=your_file_size count=1 if=/dev/urandom of=/path/to/your/file

Окно терминала, показывающее dd, подающее случайные данные.

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

rm /path/to/your/file

Плюсы

  • Универсальный – может делать больше, чем просто удаление файлов
  • Может точно настраивать удаление файлов

Минусы

  • Синтаксис устарел, даже для командной строки
  • Требует хорошего понимания размеров блоков

Полезно знать: если вы сожалеете о том, что удалили определенный файл, узнайте, как восстановить удаленные файлы в Linux.

4. Использование wipe

Wipe – это еще одна отличная альтернатива. Найдите его в центре программного обеспечения вашего дистрибутива и установите оттуда или используйте:

sudo apt install wipe

Окно терминала, показывающее информацию о wipe.

Его использование почти так же просто, как и у shred, если не проще. Чтобы удалить файлы в Linux с помощью wipe, выполните:

wipe Pictures/deleteme.png

Это может стать раздражающим, так как по умолчанию wipe использует слишком много времязатратных проходов для дополнительной безопасности. Кроме того, он запросит подтверждение для удаления.

Окно терминала, показывающее базовую сессию wipe.

Используйте флаг f, чтобы избавиться от подтверждения, и r, чтобы рекурсивно заходить в подкаталоги. c говорит wipe выполнить chmod, если это необходимо (когда файл или каталог не имеет установленных прав на запись), а q позволяет вам уменьшить количество проходов для более быстрого удаления. При использовании q обратите внимание, что он строчный. Его можно дополнить заглавной “Q”, указывающей количество проходов, которые вы требуете. Например, ранее простая команда с этими изменениями будет выглядеть так:

wipe -rfcq -Q 5 Pictures/deleteme.png

Плюсы

  • Легко использовать, даже с небольшим опытом работы с командной строкой
  • Разумные и безопасные параметры по умолчанию

Минусы

  • Параметры по умолчанию могут быть слишком строгими для большинства пользователей
  • Может не работать хорошо с активным журналированием

5. Использование Secure Delete

SRM – это один из инструментов в пакете Secure Delete, который специализируется на безопасном удалении данных с вашего HDD. Многие считают его лучшим инструментом для этой работы.

Чтобы установить полный пакет Secure Delete на Ubuntu и совместимые дистрибутивы, используйте:

sudo apt install secure-delete

Окно терминала, показывающее установку secure-delete.

После этого вы можете удалить любой файл с помощью:

srm Pictures/deleteme.png

Окно терминала, показывающее процесс безопасного удаления.

Вы, вероятно, захотите использовать флаг z, который перезаписывает содержимое вашего файла нулями для дополнительной безопасности, и v, чтобы получить подробную информацию о процессе. Если вы имеете дело с каталогами и подкаталогами, также включите флаг r для рекурсивного режима. Если 38 перезаписей для вас слишком много, вы можете уменьшить время, необходимое – а также безопасность – используя флаг l, чтобы уменьшить количество проходов до “всего лишь” двух. Это изменит предыдущую команду на:

srm -rlvz Pictures/deleteme.png

Плюсы

  • Опции просты для понимания и интуитивны
  • Удаление файла очень безопасно и тщательно

Минусы

  • Займет много времени для завершения
  • Не работает хорошо на системах, использующих RAID

6. Удаление файлов в Linux с помощью Perl

Помимо использования инструментов, вы также можете воспользоваться простыми языками программирования, такими как Perl, чтобы удалять файлы в Linux. Например, следующая строка кода заменит содержимое вашего файла символом “0”:

perl -i -pe 's/[^*]/0/g' /path/to/your/file
  • Флаг -i говорит Perl обработать файл, который вы указали в команде.
  • Флаг -pe говорит программе создать итеративный цикл для содержимого вашего файла.
  • 's/[^*]/0/g' – это команда замены. Оператор [^*] соответствует каждому байту внутри файла, а 0 заменит каждый байт.

Окно терминала, показывающее, как Perl очищает файл.

После завершения вы можете удалить ваш измененный файл с помощью rm:

rm /path/to/your/file

Плюсы

  • Вам не нужно изучать новый синтаксис, если вы знаете Perl
  • Использует знакомые абстракции, такие как замена sed

Минусы

  • Команда выполнит только один проход по файлу
  • Замена содержимого произвольными данными может быть небезопасной

Полезно знать: вы можете узнать больше о замене и потоках файлов, используя sed для базовых системных задач.

7. Способ с графическим интерфейсом: Использование Bleachbit

Если вы не любите командную строку, Bleachbit является одним из лучших решений для безопасного удаления ваших данных. (Bleachbit более известен своей способностью очищать вашу систему Linux.) По умолчанию инструмент специализируется на обнаружении и утилизации “избыточных файлов”, которые продолжают занимать место долго после того, как они вам не нужны. Но он также включает обычно забываемую возможность вручную “стереть” любой файл за пределами восстановления.

Окно Discover для Bleachbit.

Установите его на вашем совместимом с Ubuntu дистрибутиве через его центр программного обеспечения или используя:

sudo apt install bleachbit

Нажмите “Меню -> Настройки” и включите опцию “Перезаписывать содержимое файлов, чтобы предотвратить восстановление” для повышения безопасности.

Окно Bleachbit, показывающее безопасное удаление.

Вернитесь к его основному интерфейсу, нажмите “Меню -> Стереть файлы”, и из запроса, который появится, выберите файлы, которые вы хотите отправить в небытие. Нажмите “Удалить” и убедите Bleachbit, что вы уверены в том, что собираетесь сделать.

Вы всегда должны помнить, что использование файловых систем с журналированием и тот факт, что мы не знаем, как прошивка каждого HDD “управляет” своим содержимым, означает, что лучшее решение – это стереть весь HDD – или еще лучше, физически уничтожить устройство.

Плюсы

  • Легко использовать
  • Вы можете установить его на безопасный режим по умолчанию

Минусы

  • Не может выполнять очистку дисков
  • Не будет очищать свободное пространство

8. Очистка свободного пространства с помощью dd

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

Самый простой способ сделать это в Linux – использовать dd, чтобы создать файл, который заполнит весь ваш жесткий диск:

dd status=progress if=/dev/zero of=/home/$USER/wipefree

Окно терминала, показывающее команду dd для очистки свободного пространства.

После завершения вам нужно сказать вашей системе зафиксировать ваш файл “свободного пространства” на диске:

sync

Наконец, удалите ваш файл “свободного пространства” с помощью rm:

rm /home/$USER/wipefree

Безопасное удаление файлов Linux 18 Удалить файл очистки свободного пространства

Плюсы

  • Простая команда, которая не удаляет файлы
  • Очищает все оставшиеся метаданные

Минусы

  • Займет много времени для завершения
  • Не удаляет файлы напрямую

Совет: чтобы избежать сообщения “недостаточно места для хранения”, регулярно проверяйте и управляйте своим дисковым пространством.

Часто задаваемые вопросы

Возможно ли безопасно удалить удаленные файлы в Linux?

Хотя безопасное удаление удаленных файлов возможно, нет гарантии, что удаленная система Linux не будет сохранять файлы на своих дисках. Лучше предполагать, что каждый удаленный диск и система не являются безопасными.

Полностью ли исчезают мои файлы после безопасного удаления в Linux?

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

Снизьте это, перезагрузив и создав новые файлы на вашем диске.

Чем больше проходов, тем лучше при удалении файлов?

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

Кредит изображения: Unsplash. Все изменения и скриншоты сделаны Рамсесом Редом.