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

Мы уже рассмотрели, как полностью стереть содержимое вашего жесткого диска, но что делать, если вам нужно навсегда удалить один, два или десяток файлов? Этот гид покажет вам некоторые из самых популярных решений для полного удаления файлов в Linux.
Содержание
- Обойти Корзину
- Использование shred
- Использование dd для отдельных файлов
- Использование wipe
- Использование Secure Delete
- Способ с графическим интерфейсом: Использование Bleachbit
- Часто задаваемые вопросы
Примечание: Большинство твердотельных накопителей на рынке сегодня поддерживают TRIM для управления своим свободным пространством, функцию в их прошивке, которая перераспределяет их содержимое. В сочетании с файловыми системами с журналированием в Linux, такими как Ext3/4 и Reiser FS, удаление за пределами восстановления отдельных файлов не может быть гарантировано. Единственным решением в таких случаях, к сожалению, является полное уничтожение всех содержимого на SSD.
1. Обойти Корзину
Когда вы удаляете файл, он перемещается в Корзину (также известную как Корзина). Если вы хотите, вы можете обойти папку Корзины. Таким образом, ваши удаленные файлы не будут оставаться в корзине и будут помечены как полностью удаленные. Хотя они все еще могут быть восстановлены, это шаг вперед по сравнению с тем, чтобы они были доступны (в Корзине).
Совет: если вы все же предпочитаете отправлять свои файлы в Корзину, вы все равно можете настроить систему на автоматическую очистку вашей Корзины на регулярной основе.

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

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

Плюсы
- Легко сделать
- Предоставляет вам период времени перед окончательным удалением файлов
Минусы
- Не удаляет оставшиеся метаданные на диске
- Не очищает данные из файлов
2. Использование shred
Если вы используете какую-либо версию Ubuntu, shred вероятно уже является ее частью. Вы можете начать использовать его сразу, чтобы полностью удалить любые конфиденциальные файлы в Linux, которые вы хотите отправить в небытие.
Если вы хотите навсегда удалить “image.png”, используйте:
shred -uvz -n 4 image.pnguговорит shred удалить файл перед его перезаписью.vотображает подробную информацию.zзаполняет пространство, занятое данными, нулями, чтобы еще больше уменьшить вероятность восстановления.-n 4означает пять проходов удаления: shred выполняет один проход по умолчанию, и с помощью “-n” вы можете указать, сколько дополнительных проходов вам нужно для дополнительной безопасности. Общий консенсус заключается в том, что пяти проходов должно быть более чем достаточно для большинства людей.

Чтобы удалить несколько файлов или содержимое папки, используйте подстановочные знаки, такие как:
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 status=progress bs=your_file_size count=1 if=/dev/urandom of=/path/to/your/file
Теперь вы можете удалить ваш файл, используя обычную команду rm:
rm /path/to/your/fileПлюсы
- Универсальный – может делать больше, чем просто удаление файлов
- Может точно настраивать удаление файлов
Минусы
- Синтаксис устарел, даже для командной строки
- Требует хорошего понимания размеров блоков
Полезно знать: если вы сожалеете о том, что удалили определенный файл, узнайте, как восстановить удаленные файлы в Linux.
4. Использование wipe
Wipe – это еще одна отличная альтернатива. Найдите его в центре программного обеспечения вашего дистрибутива и установите оттуда или используйте:
sudo apt install wipe
Его использование почти так же просто, как и у shred, если не проще. Чтобы удалить файлы в Linux с помощью wipe, выполните:
wipe Pictures/deleteme.pngЭто может стать раздражающим, так как по умолчанию 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
После этого вы можете удалить любой файл с помощью:
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заменит каждый байт.

После завершения вы можете удалить ваш измененный файл с помощью rm:
rm /path/to/your/fileПлюсы
- Вам не нужно изучать новый синтаксис, если вы знаете Perl
- Использует знакомые абстракции, такие как замена sed
Минусы
- Команда выполнит только один проход по файлу
- Замена содержимого произвольными данными может быть небезопасной
Полезно знать: вы можете узнать больше о замене и потоках файлов, используя sed для базовых системных задач.
7. Способ с графическим интерфейсом: Использование Bleachbit
Если вы не любите командную строку, Bleachbit является одним из лучших решений для безопасного удаления ваших данных. (Bleachbit более известен своей способностью очищать вашу систему Linux.) По умолчанию инструмент специализируется на обнаружении и утилизации “избыточных файлов”, которые продолжают занимать место долго после того, как они вам не нужны. Но он также включает обычно забываемую возможность вручную “стереть” любой файл за пределами восстановления.

Установите его на вашем совместимом с Ubuntu дистрибутиве через его центр программного обеспечения или используя:
sudo apt install bleachbitНажмите “Меню -> Настройки” и включите опцию “Перезаписывать содержимое файлов, чтобы предотвратить восстановление” для повышения безопасности.

Вернитесь к его основному интерфейсу, нажмите “Меню -> Стереть файлы”, и из запроса, который появится, выберите файлы, которые вы хотите отправить в небытие. Нажмите “Удалить” и убедите Bleachbit, что вы уверены в том, что собираетесь сделать.
Вы всегда должны помнить, что использование файловых систем с журналированием и тот факт, что мы не знаем, как прошивка каждого HDD “управляет” своим содержимым, означает, что лучшее решение – это стереть весь HDD – или еще лучше, физически уничтожить устройство.
Плюсы
- Легко использовать
- Вы можете установить его на безопасный режим по умолчанию
Минусы
- Не может выполнять очистку дисков
- Не будет очищать свободное пространство
8. Очистка свободного пространства с помощью dd
Хотя безопасное удаление сделает файл труднее восстановить, все еще возможно восстановить его с помощью метаданных на вашем диске. Исправьте эту проблему, очистив все доступное свободное пространство на вашем компьютере.
Самый простой способ сделать это в Linux – использовать dd, чтобы создать файл, который заполнит весь ваш жесткий диск:
dd status=progress if=/dev/zero of=/home/$USER/wipefree
После завершения вам нужно сказать вашей системе зафиксировать ваш файл “свободного пространства” на диске:
syncНаконец, удалите ваш файл “свободного пространства” с помощью rm:
rm /home/$USER/wipefree
Плюсы
- Простая команда, которая не удаляет файлы
- Очищает все оставшиеся метаданные
Минусы
- Займет много времени для завершения
- Не удаляет файлы напрямую
Совет: чтобы избежать сообщения “недостаточно места для хранения”, регулярно проверяйте и управляйте своим дисковым пространством.
Часто задаваемые вопросы
Возможно ли безопасно удалить удаленные файлы в Linux?
Хотя безопасное удаление удаленных файлов возможно, нет гарантии, что удаленная система Linux не будет сохранять файлы на своих дисках. Лучше предполагать, что каждый удаленный диск и система не являются безопасными.
Полностью ли исчезают мои файлы после безопасного удаления в Linux?
Все еще возможно, что ваша система сохраняет некоторые метаданные от вашего старого файла. Например, ваш раздел подкачки может содержать информацию о безопасном удалении в вашей системе.
Снизьте это, перезагрузив и создав новые файлы на вашем диске.
Чем больше проходов, тем лучше при удалении файлов?
Не обязательно. В большинстве случаев пяти проходов должно быть достаточно, чтобы предотвратить любое средство восстановления данных от воссоздания вашего файла. Возможно восстановление файла за пределами пяти проходов, но для этого потребуются высокоспециализированные инструменты и программы для работы.
Кредит изображения: Unsplash. Все изменения и скриншоты сделаны Рамсесом Редом.