Использование `shred` из командной строки

Мне нужно безопасно удалить некоторые файлы. я использовал shred на Linux системах раньше, поэтому я посмотрел вокруг и обнаружил, что shred является частью coreutils пакет в макпорте. я сделал port install coreutils установить coreutils, но я все еще не могу найти shred в командной строке.

Как я могу получить shred работать в командной строке моего Mac? Если это имеет значение, я использую Mac OS X 10.7.5 (Lion)

3 ответа

Решение

port install coreutils добавляет префикс a g к именам двоичных файлов, поэтому /opt/local/bin/gshred,

OSX имеет встроенную команду srm безопасно удалить файлы. См. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/srm.1.html. Вы также можете использовать rm -P перезаписать файлы последовательностями байтов три раза.

В sierra или более поздних версиях macOS больше не включает srm. Но пользователи могут установить его с помощью homebrew:

brew install homebrew/dupes/srm && brew link --force homebrew/dupes/srm

@user495470 ответ правильный для поставленного вопроса. Проблема ни srm или же shred действительно имеет смысл для современных систем.

В основном это связано с твердотельными накопителями. В отличие от магнитных дисков современные диски с поддержкой TRIM автоматически удаляют удаленные данные в фоновом режиме.

SSD также выполняют выравнивание износа. Это делает попытки "перезаписать" файл как бесполезным (вы будете записывать в другое физическое место), так и нежелательным (это излишне способствует износу диска).

На всех компьютерах Mac, оснащенных твердотельными накопителями, включена функция TRIM.

Другая проблема - файловая система, а именно файловые системы с журналированием, которые могут хранить копию данных в другом месте до их записи.

Даже на магнитных носителях это может вызвать проблемы как для srm:

Все пользователи [..] должны знать, что srm будет работать только на файловых системах, которые перезаписывают блоки на месте. В частности, он НЕ будет работать на [...] подавляющем большинстве журнальных файловых систем.

А также shred:

[..] Шред полагается на очень важное предположение: файловая система перезаписывает данные на месте. [..] многие современные конструкции файловых систем не удовлетворяют этому предположению. Исключения включают: файловые системы с лог-структурой или журналами [..]

Тома HFS Plus записываются в журнал по умолчанию начиная с Mac OS X v10.3.

В наши дни лучший способ надежно "удалить" файлы - это включить FileVault (чтобы они никогда не записывали диск в незашифрованном виде), а затем просто удалить их и позволить TRIM разобраться с этим.

Если по стечению обстоятельств вы находитесь на магнитном носителе, отключили ведение журнала и по какой-то причине не можете зашифровать диск, вы можете выбрать следующие варианты:

  • использование rm -P который перезаписывает файлы 0xff, затем 0x00, а потом 0xff снова
  • устанавливать coreutils за gshred (То есть. brew install coreutils && gshred secrets.txt)
  • srm был удален из homebrew-dupes а также homebrew-core но кто-то опубликовал здесь кран, который работает (т.е. brew install khell/homebrew-srm/srm && srm secrets.txt)
  • Физическое разрушение среды:)
Другие вопросы по тегам