Linux безвозвратное удаление файлов
Если вам нужно безвозвратно удалить файл/каталог или же затереть весь жесткий диск, то вам подойдет утилита Shred.
Удаляя файл командой rm или через файловый менеджер, сам файл не удаляется, а затирается лишь его индекс, а пространство, которое занимал файл, помечается системой как свободное для записи. По факту файл так и остается на своём месте и восстановить его оттуда не составит большого труда. Он пролежит там до тех пор, пока на его место вы не будет записана другая информация.
Shred случайными числами заполняет место, занятое файлом. И уже, даже восстановив ваш удалённый файл, его будет невозможно прочитать. По умолчанию shred не удаляет файл, для этого используется параметр —remove (-u).
Примеры запуска Shred
Безвозвратное удаление файла
Удалить файл passwords.txt:
-z — в конце перезаписать нулями, чтобы скрыть то, что вы зачищали файл;
-v — показывать ход выполнения;
-u — обрезать и удалить файл после перезаписи;
5 — переписать 5 раз (по умолчанию — 3).
Стирание всей информации с HDD
-f — изменять права, разрешая запись, если необходимо;
-v — показывать информацию о ходе выполнения;
-z — в конце перезаписать нулями, чтобы скрыть то, что вы зачищали жесткий диск, либо его раздел.
Безвозвратное удаление каталога
К сожалению, Shred не умеет удалять каталоги. Чтобы удалить каталог нам поможет утилита wipe:
Shred и безвозвратное удаление файлов
В этой статье я расскажу, каким образом можно раз и навсегда удалить файлы с жёсткого диска в ОС Ubuntu. Итак, знакомьтесь — команда shred.
Не все знают, что удаляя файл посредством rm или через файловый менеджер, сам файл не удаляется, а затирается лишь его индекс и пространство, которое занимал файл, записывается системой как свободное для записи. Файл, как вы уже поняли, так и остался на своём месте и восстановить его оттуда не составит большого труда. Он пролежит там до тех пор, пока на его место вы не запишите другую информацию.
Shred случайными числами заполняет место, занятое файлом. И уже, даже восстановив ваш удалённый файл, его будет невозможно прочитать. По умолчанию shred не удаляет файл, для этого используется параметр —remove (-u).
shred -u /path/to/file
В shred заложен 25-тикратный цикл, то есть программа перезапишет файл случайным содержимым 25 раз. Чтобы изменить это значение, например на 35-тикратный:
shred -u -n 35 /path/to/file
Если ваша паранойя достигла ещё бОльшего уровня, то вам подойдут следующие советы.
Чтобы спрятать информацию о том, что вы зачищали файл, используйте параметр -z, добавляющий нули в конец файла — это сделает файл непохожим на зашифрованный. Если вам интересно наблюдать за процессом перезаписи, параметр -v (verbose) служит для подробного вывода информации прогресса.
shred -u -z /path/to/file
Если хотите удалить сразу несколько файлов, то укажите их в таком формате:
shred -u -z -n 30 /path/to/file1 /path/to/file2 /path/to/file3
или же можно использовать маску:
shred -u -z -n *.txt
Shred также может удалить содержимое всего жёсткого диска командой
shred /dev/sda
Естественно, время выполнения операций напрямую зависит от размера файла и скорости записи.
Единственным минусом я обнаружил то, что shred не умеет удалять каталоги. В этом нам на помощь приходит утилита wipe:
wipe -rf /path/to/catalog
Для более подробной информации используйте man shred и man wipe.
Если вы уже удалили файлы, и не хотите восстанавливать их и потом «правильно» удалять, ввиду их большого размера, то остаётся одно — перезаписать другой информацией. Информацией, ничего в себе не несущей. В этом вам придёт на помощь утилита dd
dd if=/dev/zero of=/path/to/file.trash bs=1M count=1024
где значением count является нужный вам размер файла. 1024 = 1Гб, 2048 = 2Гб и т.д.
После создания файла, удалите его уже посредством shred’а.
Безвозвратное уничтожение информации на Linux
Часто бывает так, что необходимо безвозвратно уничтожить некую информацию с носителя. Ни для кого не секрет, что файлы, удалённые из корзины, не удаляются с жёсткого диска.
Один из стандартных методов восстановления данных, перезаписываемых на жесткий диск, состоит в захвате и обработке аналогового сигнала, получаемого из привода головок чтения/записи, прежде, чем этот сигнал будет оцифрован. Этот аналоговый сигнал близок к цифровому, но различия раскрывают важную информацию. Рассчитав цифровой сигнал, а затем вычтя его из фактического аналогового, можно усилить сигнал, оставшийся после вычитания, и использовать его, чтобы определить, что ранее было написано на диске.
Даже при неоднократной перезаписи диска со случайными данными теоретически возможно восстановить предыдущий сигнал. Диэлектрическая проницаемость среды изменяется с частотой магнитного поля. Это означает, что низкая частота поля проникает глубже в магнитный материал на диске, чем высокая частота оного. Так низкочастотный сигнал теоретически может быть определен даже после того, как перезапись производилась сотни раз на высокой частоте сигнала. Википедия.
Отсюда возникает потребность в уничтожении остаточной информации, дабы она не попала не в те руки.
Остаточная информация — информация на запоминающем устройстве, оставшаяся от формально удалённых операционной системой данных. Информация может остаться из-за формального удаления файла или из-за физических свойств запоминающих устройств. Остаточная информация может привести к непреднамеренному распространению конфиденциальной информации, если хранилище данных окажется вне зоны контроля (например, будет выброшено с мусором или передано третьей стороне). Википедия.
Рассмотрим несколько программ, целью которых является полное безвозвратное уничтожение данных на Linux.
Nwipe – безопасное удаление с дисков
Nwipe — утилита для безопасного удаления данных с дисков, использующая несколько общепризнанных методов. Она является ответвлением от dwipe, используемой в Darik’s Boot and Nuke (DBAN).
Связанные с программой сайты:
–autonuke — если не были указаны устройства в командной строке, начинает немедленно стирать все устройства. Если устройства были заданы, то немедленно начинает стирать только эти специфичные устройства.
-m, –method=METHOD — метод стирания.
Secure-Delete — инструменты для стирания файлов, освобождения дискового пространства, swap’а и памяти
Очень полезный в быту параноика набор консольных утилит. Предназначен для безвозвратного удаления данных и удаления остаточной информации. В своей работе использует Метод Гутмана.
В своём составе имеет набор из четырёх консольных утилит:
Найти программу можно в репозиториях своей Linux-системы. Страница проекта на GitHub: github.com/paolostivanin/Secure-Delete
Начнём с первой, и самой полезной утилиты — Srm. Удаляет файлы и каталоги с жёсткого диска.
Srm выполняет безопасную перезапись/переименование/удаление целевого файла (ов). По умолчанию включён безопасный режим (38 записей).
Sfill. Аналогична предыдущей, только обрабатывает свободное место на диске, зачищая следы данных.
sfill выполняет безопасную перезапись свободного места, занимаемого директорией, и всех свободных инодов заданной директории. По умолчанию безопасный режим (38 записей).
Sswap. То же самое, но зачищает раздел подкачки /swap, если он присутствует в системе. Перед использованием необходимо отключить swap.
sswap выполняет безопасное стирание области swap. По умолчанию безопасный режим (38 записей).
ВНИМАНИЕ: Нужно отключить swap перед использованием этой программы!
И последняя утилита – sdmem. Уничтожает следы данных в оперативной памяти.
smem выполняет безопасную перезапись оперативной памяти (RAM), поскольку содержимое памяти может быть восстановлено даже после отключения! По умолчанию безопасный режим (38 записей).
Пояснение по ключам:
- -r — обрабатывать все вложенные подкаталоги. Данный ключ необходим, если удаляемый файл является каталогом, пусть даже пустым. Если удаляемый файл не является каталогом, то ключ -r не влияет на команду srm.
- -v — подробный режим. По умолчанию в терминал не выводятся результаты работы программы. Этот ключ позволяет их просмотреть.
- -f — вместо /dev/random (ГСЧ) использует /dev/urandom (ГПСЧ) Суть отличия ниже. Если вкратце, то при использовании /dev/urandom повышается скорость перезаписи, но при этом числа не случайны. Поэтому использование ключа не рекомендуется.
/dev/random и /dev/urandom — специальные символьные псевдоустройства в некоторых UNIX-подобных системах, впервые появившиеся в ядре Linux версии 1.3.30. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шумы из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайные числа.
При чтении данных в устройстве /dev/random создаются только случайные байты, состоящие из битов шума «хаотичного» пула. Устройство /dev/random может быть необходимо пользователям, которые требуют очень высокого коэффициента случайности, например, при создании ключа доступа и т. п. Если «хаотичный» пул опустел, чтение /dev/random блокируется, пока необходимое количество битов в пуле не будет создано.
Чтение данных устройства /dev/urandom возвратит столько байтов, сколько было запрошено. В результате, если в пуле было недостаточно битов, теоретически возможно будет найти уязвимость алгоритма, использующего это устройство. Если это важно, следует использовать /dev/random. Википедия.
- -l — вместо 38 циклов перезаписи проходит только первых два: затирание нулями и запись случайными числами. Крайне небезопасно, но сильно ускоряет работу программы. Если используете этот ключ, то после желательно ещё раз затереть свободное место на диске.
One thought to “Безвозвратное уничтожение информации на Linux”
Если у вас есть информация которая при попадании в чужие руки может принести массу проблем, то просто держите её в криптоконтейнере. Так же шифруем полностью весь Linux, а если HDD необходимо будет продать, подключаем носитель к другому ПК или грузимся с LiveCD и шифруем весь носитель. Считаю такой метод более надёжен, нежели перезапись в несколько подходов, но опять же, всё зависит от важности информации. И последнее, все перечисленные способы в статье актуальны только для HDD, SSD лучше шифровать изначально.
Shred и безвозвратное удаление файлов
В этой статье я расскажу, каким образом можно раз и навсегда удалить файлы с жёсткого диска в ОС Ubuntu. Итак, знакомьтесь — команда shred.
Не все знают, что удаляя файл посредством rm или через файловый менеджер, сам файл не удаляется, а затирается лишь его индекс и пространство, которое занимал файл, записывается системой как свободное для записи. Файл, как вы уже поняли, так и остался на своём месте и восстановить его оттуда не составит большого труда. Он пролежит там до тех пор, пока на его место вы не запишите другую информацию.
Shred случайными числами заполняет место, занятое файлом. И уже, даже восстановив ваш удалённый файл, его будет невозможно прочитать. По умолчанию shred не удаляет файл, для этого используется параметр —remove (-u).
shred -u /path/to/file
В shred заложен 25-тикратный цикл, то есть программа перезапишет файл случайным содержимым 25 раз. Чтобы изменить это значение, например на 35-тикратный:
shred -u -n 35 /path/to/file
Если ваша паранойя достигла ещё бОльшего уровня, то вам подойдут следующие советы.
Чтобы спрятать информацию о том, что вы зачищали файл, используйте параметр -z, добавляющий нули в конец файла — это сделает файл непохожим на зашифрованный. Если вам интересно наблюдать за процессом перезаписи, параметр -v (verbose) служит для подробного вывода информации прогресса.
shred -u -z /path/to/file
Если хотите удалить сразу несколько файлов, то укажите их в таком формате:
shred -u -z -n 30 /path/to/file1 /path/to/file2 /path/to/file3
или же можно использовать маску:
shred -u -z -n *.txt
Shred также может удалить содержимое всего жёсткого диска командой
shred /dev/sda
Естественно, время выполнения операций напрямую зависит от размера файла и скорости записи.
Единственным минусом я обнаружил то, что shred не умеет удалять каталоги. В этом нам на помощь приходит утилита wipe:
wipe -rf /path/to/catalog
Для более подробной информации используйте man shred и man wipe.
Если вы уже удалили файлы, и не хотите восстанавливать их и потом «правильно» удалять, ввиду их большого размера, то остаётся одно — перезаписать другой информацией. Информацией, ничего в себе не несущей. В этом вам придёт на помощь утилита dd
Безвозвратное удаление файлов в Linux
Если вам нужно безвозвратно удалить файл/каталог или же затереть весь жесткий диск, то вам подойдет утилита Shred.
Удаляя файл командой rm или через файловый менеджер, сам файл не удаляется, а затирается лишь его индекс, а пространство, которое занимал файл, помечается системой как свободное для записи. По факту файл так и остается на своём месте и восстановить его оттуда не составит большого труда. Он пролежит там до тех пор, пока на его место вы не будет записана другая информация.
Shred случайными числами заполняет место, занятое файлом. И уже, даже восстановив ваш удалённый файл, его будет невозможно прочитать. По умолчанию shred не удаляет файл, для этого используется параметр —remove (-u).
Примеры запуска Shred
Безвозвратное удаление файла
Удалить файл passwords.txt:
-z — в конце перезаписать нулями, чтобы скрыть то, что вы зачищали файл;
-v — показывать ход выполнения;
-u — обрезать и удалить файл после перезаписи;
5 — переписать 5 раз (по умолчанию — 3).
Стирание всей информации с HDD
-f — изменять права, разрешая запись, если необходимо;
-v — показывать информацию о ходе выполнения;
-z — в конце перезаписать нулями, чтобы скрыть то, что вы зачищали жесткий диск, либо его раздел.
Безвозвратное удаление каталога
К сожалению, Shred не умеет удалять каталоги. Чтобы удалить каталог нам поможет утилита wipe:
Как удалить файлы и каталоги в терминале Linux?
Команды rm и rmdir удаляют файлы и каталоги в Linux, macOS и других Unix-подобных операционных системах. Они похожи на команды del и deltree в Windows и DOS. Эти команды очень мощные и имеют довольно много опций.
Важно отметить, что файлы и каталоги, удаленные с помощью rm и rmdir , не перемещаются в корзину. Они сразу же удаляются с вашего компьютера. Если вы случайно удалили файлы с помощью этих команд, вы сможете восстановить их только из резервной копии.
Как удалить файлы с помощью rm
Самый простой случай — это удаление одного файла в текущем каталоге. Введите команду rm, пробел, а затем имя файла, который вы хотите удалить.
Если файл не находится в текущем рабочем каталоге, укажите путь к местоположению файла.
Вы можете передать более одного имени файла в rm. При этом удаляются все указанные файлы.
Подстановочные знаки могут использоваться для выбора групп файлов, которые будут удалены. Знак * представляет несколько символов, а символ ? представляет один символ. Эта команда удалит все файлы изображений png в текущем рабочем каталоге.
Эта команда удалит все файлы с одним символьным расширением. Например, это удалит File.1 и File.2, но не File.12.
Если файл защищен от записи, вам будет предложено удалить файл. Вы должны ответить с помощью y или n и нажать «Enter».
Чтобы снизить риск использования rm с подстановочными знаками, используйте параметр -i (интерактивный). Для этого необходимо подтвердить удаление каждого файла.
Опция -f (сила) противоположна интерактивной. Он не запрашивает подтверждение, даже если файлы защищены от записи.
Как удалить каталоги с помощью rm
Чтобы удалить пустой каталог, используйте опцию -d (directory). Вы можете использовать подстановочные знаки (* и ?) В именах каталогов так же, как и в именах файлов.
Предоставление более одного имени каталога удаляет все указанные пустые каталоги.
Чтобы удалить не пустые каталоги, используйте параметр -r (рекурсивный). Чтобы было ясно, это удаляет каталоги и все файлы и подкаталоги, содержащиеся в них.
Если каталог или файл защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить не пустые каталоги и подавить эти приглашения, используйте вместе параметры -r (рекурсивный) и -f (принудительный).
Здесь требуется осторожность. Ошибка в команде rm -rf может привести к потере данных или неисправности системы. Это опасно, и осторожность — лучшая политика. Чтобы получить представление о структуре каталогов и файлах, которые будут удалены командой rm -rf, используйте команду tree .
Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.
Выполнение команды tree дает простую для понимания диаграмму структуры каталогов и файлов под каталогом, из которого она запускается.
Вы также можете указать путь к команде tree чтобы он запускал дерево из другого каталога в файловой системе.
Команда rm также имеет параметры —one-file-system , —no-preserve-root , —preserve-root , но они рекомендуются только для опытных пользователей. Если вы что-то не так, вы можете случайно удалить все ваши системные файлы.
Как удалить каталоги с помощью rmdir
Есть еще одна команда rmdir , которую вы можете использовать для удаления каталогов. Разница между rm и rmdir том, что rmdir может удалять только пустые каталоги. Он никогда не удалит файлы.
Самый простой случай — удаление одного пустого каталога. Как и в случае с rm , вы можете передать несколько имен каталогов в rmdir или rmdir путь к каталогу.
Удалите один каталог в текущем каталоге, передав его имя в rmdir :
Удалите несколько каталогов, передав список имен в rmdir :
Удалите каталог не в текущем каталоге, указав полный путь к этому каталогу:
Если вы попытаетесь удалить не пустую папку, rmdir выдаст вам сообщение об ошибке. В следующем примере rmdir успешно и без вывода сообщений удаляет каталог clients но отказывается удалять каталог projects поскольку он содержит файлы. Каталог projects остается точно таким, каким он был, а файлы в нем нетронутыми.
Когда rmdir выдает ошибку «Directory not empty», он прекращает обработку каталогов, переданных ему в командной строке. Если вы попросили удалить четыре каталога, а в первом содержались файлы, rmdir выдаст вам сообщение об ошибке и больше ничего не сделает. Вы можете заставить его игнорировать эти ошибки с —ignore-fail-on-non-empty чтобы обрабатывать другие каталоги.
В следующем примере две папки были переданы в rmdir , это work/reports и work/quotes. Параметр —ignore-fail-on-non-empty включен в команду. В папке work/reports находятся файлы, поэтому rmdir не может удалить ее. Опция —ignore-fail-on-non-empty заставляет rmdir игнорировать ошибку и переходить к следующей папке, которую он должен обработать, это work/quotes. Это пустая папка, и rmdir удаляет ее.
Эта команда использовалась.
Вы можете использовать опцию -p (parent), чтобы удалить каталог, а также удалить его родительские каталоги. Этот прием работает, потому что rmdir начинается с целевого каталога, а затем возвращается к родительскому. Теперь этот каталог должен быть пустым, поэтому он может быть удален rmdir, и процесс повторяет шаг назад по пути, предоставленному rmdir.
В следующем примере команда, переданная в rmdir:
Каталоги invoices и work удаляются по запросу.
Используете ли вы Bash или любую другую оболочку? Linux предоставляет гибкие и мощные команды для удаления каталогов и файлов прямо из командной строки терминала. Некоторые люди предпочитают иметь рабочий процесс, который вращается вокруг терминала. У других может не быть выбора в этом вопросе. Они могут работать на серверах без установленного графического интерфейса или в удаленном сеансе в автономной системе, такой как Raspberry Pi. Эти команды идеально подходят для этой группы людей.
Но какой бы тип рабочего процесса вы ни предпочли, эти команды очень хорошо подходят для включения в сценарии оболочки. Если сценарий запускается заданием cron , это может помочь автоматизировать рутинные служебные задачи, такие как очистка нежелательных файлов журнала. Если вы исследуете этот вариант использования, помните о силе этих команд, тщательно проверяйте все и всегда сохраняйте последнюю резервную копию.