Intereting Posts
Одинарная кавычка в двойных кавычках и справочное руководство Bash Почему mutt сохраняет удаленные электронные письма, пока вы не «синхронизируете свой почтовый ящик» с помощью $? Как запустить команды bash и оставить приглашение открытым? файл по-прежнему доступен только для чтения после монтирования – из раздела rw Перемещение файлов в отдельные каталоги на основе группировки, определенной в файле CSV tr -c '' '\ n' не заменяет всех символов дополнения Можно ли получить конкретную информацию о сжатии файла? Настройка тайм-аута подключения полного обновления системы pacman Политика паролей в Openldap не поддерживает все атрибуты Если текст из файла совпадает с именем name, тогда запустите функцию Что такое идентификатор токена “ `? Как запускать программы с такими аргументами, как «arg = val» (например, dd) в rc shell (версия Linux портирована из Plan9 OS)? Изменение с помощью команды iptables не отражается в выводе команды netstat Используя sed (?), Чтобы извлечь один экземпляр строки, которая повторяется в исходной строке Почему файл вывода tcpdump пуст?

Что значит перезаписать файл, но сохранить его?

У инструмента wipe есть опция -k Keep files, ie do not remove() them after overwriting .

Что это значит не удалять файл, который был … хорошо … стерт?

Man-страница описывает -k так:

Сохранять файлы: не отменять связь файлов после их перезаписи. Полезно, если вы хотите стереть устройство, сохраняя специальный файл устройства. Это подразумевает -F .

Основным вариантом использования -k является

 wipe -k /dev/sda 

который перезапишет все содержимое диска, не удаляя узел устройства.

Если вы используете его для «стандартного» файла, он сотрет содержимое файла, но оставит сам файл (его имя и его присутствие в родительском каталоге) в одиночку.

Такие программы, как wipe и wipe , предназначенные для перезаписи файловых данных, работают с использованием тех же интерфейсов, что и любые другие программы. Они используют обычные функции ОС для записи, например, нhive в файл, и надеются, что файловая система хранит новые данные на тех же дисковых блоках, что и старые, и, следовательно, перезаписывает старые. У них нет специального метода уничтожения данных или обеспечения недоступности файла, кроме удаления их с помощью unlink() .

Следовательно, сохранение файла после его перезаписи – это то, что файл остается и не удаляется. Только содержание изменилось.

Пример с shred , который по умолчанию не отменяет связь с файлом:

 $ cat somefile some secret data $ shred somefile $ ls -l somefile -rw-r--r-- 1 username username 4096 Jun 27 19:28 somefile $ od -tx1 somefile |head -2 0000000 2b d7 fe 76 a0 4c 79 4e b6 bc 26 7d 6c b0 4e ed 0000020 81 a2 bf 3f ce af ce f0 07 2b fe 80 50 39 e3 c9 

После shred файл остается заполненным случайными байтами. Файл не обрезан и не удален. Его размер фактически увеличился, так как при перезаписи shred округляет размер файла (чтобы полностью перезаписать последний блок данных).

Конечно, мы можем удалить файл с помощью команды rm somefile .

Обратите внимание, что допущения, от которых зависит перезапись, могут даже не выполняться для всех файловых систем. По крайней мере, ведение журнала файловых данных (возможно на ext4) и файловых систем копирования при записи (btrfs) сделает перезапись неэффективной, по сути, сохраняя несколько копий данных.