Иногда необходимо удалить файл в файловой системе и убедиться, что файл действительно удален. Например, файл, содержащий конфиденциальные пароли, должен быть полностью удален с диска.
Выпуск простого rm
файла в типичной файловой системе удаляет индекс («указатель») для файла, но не удаляет содержимое файла на физическом диске - они остаются там до тех пор, пока не будут перезаписаны, когда файловой системе потребуется свободное место.
Во многих файловых системах программа уничтожения обеспечивает такое безопасное удаление. Однако в файловой системе CoW, такой как btrfs, этот подход бесполезен . Проблема усугубляется тем, что файл может присутствовать на снимках тома.
Есть ли способ безопасно удалить файл в файловой системе btrfs? Достаточно ли удалить все указатели (на всех томах) и заполнить свободное место нулями ?
источник
Ответы:
Безопасное удаление - сложное предложение для любой файловой системы. Если файловая система не очень своеобразна и не гарантирует, что нет других копий файла, лежащих вокруг, вам необходимо очистить все свободное место на устройстве. В то время как вы с большей вероятностью найдете много битов файла в файловых системах копирования при записи, даже более «статические» файловые системы не имеют такой гарантии на практике, потому что многие файлы редактируются, так что есть немного от предыдущих версий файл валяется.
Обратите внимание, что стирание с нулями так же хорошо, как стирание со случайными байтами, и вам не нужно многократных проходов. Стирание с нулями оставило остаточные данные, которые можно было частично восстановить в лабораторных условиях с технологиями жестких дисков 1980-х годов; это больше не применимо сегодня. См. Почему запись нулей (или случайных данных) на жесткий диск в несколько раз лучше, чем просто сделать это один раз?
Вы можете избавиться от конфиденциальных данных открытым текстом, зашифровав все на диске. Настройте том ecryptfs над этой файловой системой и переместите все свои (конфиденциальные) файлы в нее. Затем перезаписать все неиспользуемое пространство файловой системы. Вы можете стереть большинство из них, заполнив файловую систему
cat /dev/zero >zero
. В неполных блоках все еще может оставаться некоторая информация (блоки, содержащие последний фрагмент файла, за которым следует мусор, который может быть остатком из конфиденциального файла). Чтобы гарантировать отсутствие незавершенных блоков, переместите все в файловой системе в ecryptfs (файлы ecryptfs используют целые блоки, по крайней мере, в типовых установках, где блоки имеют размер 4 КБ). Обязательно примените это ко всем томам и сотрите все снимки, содержащие незашифрованные конфиденциальные данные.Возможно, в журнале осталась некоторая информация. Я не знаю, как это почистить.
На SSD из-за перераспределения блоков могут остаться данные, которые не могут быть прочитаны обычными программными средствами, но могут быть восстановлены путем взлома прошивки или с физическим доступом. Там ваш единственный выход - полное стирание SSD.
источник
0
как в порядке, и не подпадает под действие TRIMing, скажем, писать все1
вместо? Или некоторые диски используют сжатие на всем?Хммм, кажется, btrfs побеждает все обычные методы измельчения ...
nodatacow
но она не влияет на уже существующие файлы.debugfs
. Это только для файловых систем ext, но есть патч, который может сработать. Вы можете использовать его, чтобы узнать адреса затронутых блоков, а затем перезаписать их непосредственно в / dev / sdXY. Но это очень опасно и может не сработать (особенно если есть больше снимков файла)Самая чистая попытка (для действительно очень важных данных) будет:
Это может быть не самый дешевый подход, но с учетом сегодняшних низких затрат на хранение и проблем, которые могут возникнуть у вас с другими вариантами, он может быть самым дешевым (с точки зрения рабочего времени).
источник
nodatacow
устанавливает статусC
флага по умолчанию для вновь создаваемых файлов. Конечно, кто-то мог простоchattr +C ~/.browser/logins.sqlite
и тогдаshred
это?Есть
shred(1)
для Unix / Linux (должно быть в пакетах вашего дистрибутива). Я то, что рекомендует EFF .источник