Удаление файлов — довольно распространенная задача для пользователей любой операционной системы на любом устройстве. Хотите ли вы удалить неиспользуемые файлы на своем ПК или освободить место, удалив старые файлы журналов на своем сервере, полезно знать различные варианты удаления файлов.
Безопасное удаление файлов также является жизненно важной мерой, когда речь идет о конфиденциальности данных и различных правовых аспектах, связанных с ней. Многие новые файловые системы используют новые технологии, такие как журналирование, в котором удаление не «удаляет» данные, а создает запись «Удален» для удаленного файла в Журнале и отмечает его пространство как доступное для использования. Простая команда rm
вовсе не гарантирует, что «удаленное» содержимое не может быть восстановлено.
Из страницы руководства rm:
Если вы используете rm для удаления файла, то при наличии достаточных знаний и/или времени можно восстановить часть его содержимого.
Поэтому крайне важно знать инструменты в Linux, которые гарантируют, по крайней мере в некоторой степени, что данные будут удалены и не смогут быть восстановлены ни с помощью инструмента восстановления, ни каким-либо другим методом восстановления данных.
Инструменты командной строки для окончательного удаления файлов в Linux
Использование команды rm
rm
— стандартная программа для удаления файлов в системах GNU/Linux. Она является частью GNU Coreutils и предустановлена почти во всех дистрибутивах Linux.
Чтобы удалить файл(ы) с помощью rm, вы можете выполнить:
rm file1 file2 /home/user/file3
Это не работает с каталогами. Чтобы удалить целые каталоги вместе с иерархиями ниже, вы можете запустить:
rm -r dir1 /home/user/dir2 file3
Данные, удаленные с помощью rm,
можно восстановить, пока новые данные не будут записаны на диске, занимаемом удаленными данными. Следовательно, rm
это хороший вариант, если данные, которые нужно удалить, не содержат никакой конфиденциальной информации.
Использование команды shred
Команда shred перезаписывает файл случайными данными несколько раз с возможностью удаления файла. Это делает восстановление данных крайне маловероятным, даже с дорогим оборудованием.
Чтобы уничтожить содержимое файла (перезаписать случайными данными), выполните следующую команду:
shred filename
Обратите внимание, что по умолчанию он перезаписывает случайные данные 3 раза. Чтобы перезаписать с другим количеством итераций, выполните следующую команду:
shred -n 10 filename
Это перезапишет данные 10 раз. Обратите внимание, что вышеприведенное не удалит файл, будут перезаписаны только данные.
Чтобы shred
мог удалить и перезаписать содержимое файла, используйте следующую команду:
shred -n 10 --remove filename
Одним из недостатков использования функции измельчения является отсутствие возможности «рекурсивного измельчения».
Использование команды srm
Программа srm
является частью пакета secure-delete в дистрибутивах Debian и Red Hat. Она использует аналогичный метод shred
для безопасного удаления файла. Однако алгоритмы, используемые для перезаписи файла, различаются в обоих инструментах.
Для установки srm
в Ubuntu и подобных дистрибутивах выполните следующую команду:
sudo apt install secure-delete
Примечание: для более старых версий Ubuntu (версии 14.04 и ниже) необходимо использовать apt-get
вместо apt
.
Для установки srm
в дистрибутивах на базе Red Hat выполните следующую команду:
yum install secure-delete
Чтобы рекурсивно удалить файлы и папки с помощью srm
, выполните следующую команду:
srm -r foldername/
Инструменты с графическим интерфейсом для полного удаления файлов в Linux
Использование Наутилуса
Nautilus — это файловый менеджер по умолчанию для большинства дистрибутивов Linux. Вы можете навсегда удалить файлы в Nautilus, следуя инструкциям ниже.
Сначала откройте Nautilus и перейдите в папку, из которой вы хотите удалить файлы.
Выберите файл/папку и нажмите комбинацию клавиш Shift+Delete
.
В диалоговом окне подтверждения нажмите «Удалить», чтобы окончательно удалить файл или папку.
Если вы предпочитаете использовать мышь вместо клавиатуры, то вы можете добавить опцию «Удалить» в контекстное меню, чтобы можно было щелкнуть правой кнопкой мыши по файлам/папкам и выбрать «Удалить». По умолчанию единственная опция в контекстном меню — «Переместить в корзину».
Чтобы включить опцию безвозвратного удаления в контекстном меню, выполните следующие действия:
- Перейдите в меню «Правка»» «Настройки» в проводнике.
- Затем выберите вкладку «Поведение».
- Установите флажок Включить команду удаления, которая обходит Корзину.
Это добавит опцию «Удалить» в контекстное меню Nautilus в Ubuntu и других дистрибутивах Linux.
Использование скриптов Nautilus (для запуска любой программы из графического интерфейса)
Nautilus имеет возможность добавлять ручные скрипты для выполнения на выбранных файлах. Мы можем использовать это для запуска shred
или команды srm
из GUI.
Давайте создадим скрипт srm
для рекурсивного запуска. Откройте терминал и перейдите в папку скриптов Nautilus, выполнив команду ниже:
cd ~/.local/share/nautilus/scripts/
Создайте пустой файл скрипта с помощью следующей команды:
vim ~/.local/share/nautilus/scripts/Secure_Delete
Добавьте следующие строки в файл скрипта, который мы создали на предыдущем шаге.
#!/bin/bash
srm -r $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
Вот переменная $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
, которая содержит пути ко всем файлам и папкам, выбранным пользователем в Nautilus.
Сохраните файл, сначала нажав клавишу ESC
, а затем введите :wq
, чтобы сохранить файл и выйти из консоли vim.
Наконец, сделайте скрипт исполняемым, предоставив ему разрешение на выполнение с помощью приведенной ниже команды.
chmod +x Secure_Delete
После настройки файла скрипта вернитесь в Nautilus GUI и щелкните правой кнопкой мыши по файлу или папке. Вы должны увидеть скрипт Secure_Delete в пункте Скрипты в контекстном меню.
Щелкните по имени скрипта (в данном случае Secure_Delete), чтобы окончательно удалить файлы, выбранные вами перед щелчком правой кнопкой мыши.
Аналогичным образом вы можете добавить скрипт для shred
или любого другого инструмента и выполнить его из графического интерфейса.
Доступны и другие инструменты с графическим интерфейсом, такие как Nautilus-wipe и Bleachbit, которые также используют похожие алгоритмы, как shred
и srm
. Оба могут быть установлены из стандартного репозитория Ubuntu.
Обратите внимание, что даже после использования этих методов все еще остается небольшой шанс, что данные могут быть восстановлены с помощью программного обеспечения (восстановление диска) или аппаратных методов (заморозка жесткого диска). Поэтому в случае, если чрезвычайно конфиденциальные данные должны быть удалены навсегда, такие методы, как нагревание жесткого диска до 1500 градусов по Цельсию, гарантируют, что никакие инструменты не смогут восстановить какие-либо данные с диска.