SRM ушел в macOS Sierra (10.12)


33

Я только что обновился до MacOS 10.12, и когда я пытаюсь выполнить srmв терминале, он говорит -bash: srm: command not found.

Является ли srmудален? Как это исправить?


Как примечание: srmбыл умирающий проект еще в начале 2000-х годов. Apple вложила некоторые ресурсы в проект, и он впервые появился в 10.3. Вы должны знать, что использование srmне гарантирует, что данные не подлежат восстановлению.
fd0

@ fd0, можете ли вы придумать лучшую идею или безопасно удалить файлы с SSD на новых Mac?
Никтин Роман

1
Полное шифрование диска, хотя я им не пользуюсь и rmили пустая корзина в графическом интерфейсе.
fd0

4
@NiktinRoman для SSD srm не более безопасен, чем rm - srm имеет смысл только для жестких дисков. Я подозреваю, что это причина, по которой он был удален
user151019

Ответы:


3

Пока не работает macOS 10.12, однако под OS X 10.8.5 страница srmруководства для в NOTESразделе гласит:

Разработка и обсуждение srm осуществляется по адресу < http://sourceforge.net/project/?group_id=3297 >, который также доступен через < http://srm.sourceforge.net >.

Теперь вам нужно скачать исходный код и скомпилировать его для себя. Это потребует установки инструментов командной строки для XCode. Не уверен, что все еще применимо под macOS 10.12, однако, см. Как установить инструменты командной строки в OS X Mavericks & Yosemite (без XCode) для деталей. Или в Терминале используйте следующую команду:xcode-select --install

Я загрузил последний исходный код, и он скомпилирован без ошибок в OS X 10.8.5, хотя это не означает, что он будет работать в MacOS 10.12, но, вероятно, это единственный выбор, который у вас есть, если srmон был удален.

Тем не менее, я бы, вероятно, только srmна ротационных HDD не SSD.


3
NB srm доступен в homebrew / dupes, если вы используете homebrew. Он будет жаловаться, что MacOS уже предоставляет это программное обеспечение. Это не так в Сьерре, но в любом случае, чтобы установить его, используйте homebrewbrew install srm && brew link --force srm
kojiro

1
@kojiro не работает. «srm был удален из homebrew / core в коммите 7957c4b98»
AfterWorkGuinness

@AfterWorkGuinness Правда, Apple якобы удалила srm, потому что они думали, что это уничтожит ssds людей. github.com/Homebrew/homebrew-dupes/issues/725 . Я несколько скептически отношусь к тому, что они имели в виду именно эту причину, но суть в том, что команды безопасного удаления менее полезны на ssd, чем вращающаяся ржавчина. (Вероятно, Apple никогда не приходит в голову, что кто-то может захотеть подключить вращающуюся ржавчину.)
Кодзиро

27

Из этого комментария:

Вы можете придумать лучшую идею или безопасно удалить файлы с SSD на новых Mac? - Никтин Роман

Там нет необходимости srm; при условии, что TRIM включен на вашем компьютере 1

Поддержка TRIM обрабатывает это для вас. Когда вы удаляете файл с вашего диска, ОС помечает файловое пространство как «неиспользуемое» - это относится к любому диску. На SSD, в отличие от HDD, отправляется команда TRIM, чтобы стереть все данные в этом отмеченном пространстве. Это позволяет вашему SSD иметь возможность записывать данные в отмеченное пространство, как если бы оно было совершенно новым и никогда не использовалось, и пропустить традиционный процесс удаления.

Если вам нужна дополнительная безопасность, включите FileVault .

За поддержку Apple :

Примечание. При использовании SSD-диска функции «Безопасное стирание» и «Удаление свободного пространства» недоступны в Дисковой утилите. Эти параметры не нужны для SSD-накопителя, поскольку стандартное стирание затрудняет восстановление данных с SSD-накопителя. Для большей безопасности рассмотрите включение шифрования FileVault, когда вы начинаете использовать SSD-накопитель.

Я также не советую использовать srmего, потому что он выполняет больше и ненужных операций записи на SSD, тем самым сокращая срок его службы. Со страницы руководства :

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


1 TRIM включается по умолчанию, если на вашем Mac установлен предустановленный SSD. если вы добавили SSD после факта, то вы должны включить TRIM, введя команду sudo trimforce enableв Терминале.


3
Это должен быть принятый ответ.
LS

Отмечает ли TRIM пробел таким образом, когда вы извлекаете файл в терминале (удаленный файл не будет отображаться в корзине), или только если вы удаляете «регулярно» (перемещаете его в корзину)? Благодарность!
ScienceFriction

1
«Корзина» - это просто скрытая папка в вашем домашнем каталоге ~/.Trash. Таким образом, «перемещение файла в корзину» - это просто перемещение файла. Когда вы очищаете корзину, это когда вы действительно удаляете файл. Когда файл на самом деле удаляется с помощью этого метода или с помощью rm- это когда TRIM вступает в силу.
Аллан

2
Команде TRIM нельзя доверять для надежного удаления данных на SSD. Это просто позволяет ОС сообщать SSD, что определенные блоки больше не используются. Это зависит от контроллера прошивки SSD, чтобы правильно реализовать TRIM. Производители дисков не имеют здесь хороших результатов. Даже более сильная команда «безопасного стирания» ATA реализована непоследовательно, даже иногда сообщая об успехе, когда все данные остались на диске. См. Cseweb.ucsd.edu/~swanson/papers/Fast2011SecErase.pdf для получения дополнительной информации.
Уильям Буддингтон

1
@WilliamBudington - ваша информация крайне устарела. Смотрите этот пост: apple.stackexchange.com/questions/269863/…
Аллан

25

У rm есть ключ -P, который перед удалением перезаписывает файл три раза. Полагаю, лучше, чем ничего.


В этом случае это технически правильно. Три раза нет ничего лучше, чем ничего.
Римиан

9

Для безопасного удаления файла / папки на MacOS Sierra без использования внешних утилит используйте rmс -Pкоммутатором:

## delete a single file
rm -Pv wikileak1.txt

## delete a folder recursively
rm -Pvrf ~/.wikileaks

Со страницы руководства :

 -P          Overwrite regular files before deleting them.  Files are
             overwritten three times, first with the byte pattern 0xff,
             then 0x00, and then 0xff again, before they are deleted.

 -v          increase verbosity

ПРИМЕЧАНИЕ . В случае, если вы установили GNU coreutils из homebrew с именами по умолчанию, например brew install coreutils --default-names, затем, в зависимости от того, как вы сконфигурировали PATH, версия GNU rmможет скрывать версию Mac /bin/rmи не будет принимать эту -Pопцию. Используйте, which -a rmчтобы перепроверить.


7

С тех пор как на этот вопрос был дан первый ответ, произошли две вещи:

  • homebrew-dupes был объединен в homebrew-core
  • srm был удален из homebrew-core

Если вы попытаетесь установить его сейчас, он предоставит вам подробную информацию о коммите удаления и предложит создать свой собственный тап, если он вам все еще нужен. Я сделал это здесь .

Вы можете установить его, используя Homebrew :brew install khell/homebrew-srm/srm



0

Есть много хороших причин , чтобы не использовать безопасные средства удаления ( srm, shred, rm -P, и т.д.) на современных системах (с TRIM поддержкой SSD - накопителей и / или цапфами файловых систем). @ Ответ Аллана, в частности, точный.

Тем не менее, если вы действительно , действительно хотите восстановить srm, кто - то опубликовал Homebrew кран здесь , что работает. То есть:

brew install khell/homebrew-srm/srm
srm secrets.txt

( Очевидно, после того, как вы установили Homebrew .)


-2

sudo port установите srm, который сделает


3
Это, вероятно, приведет к -bash: port: command not foundошибке, поэтому здесь может потребоваться дополнительная информация.
холме

1
Установите macports: macports.org/install.php
eggonlegs

Это то, что я сделал, когда Macports был удален во время некоторого обновления ОС, предположительно. Это предпочтительный метод в моей книге, но не полный ответ, так что не могу голосовать ... да ладно. Затем я использовал команду sudo srm -RfvD TargetDirectoryToWipe . Не на SSD ...
НЕ только - user4304
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.