Использование `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
)- Физическое разрушение среды:)