SRM zniknął w macOS Sierra (10.12)

33

Właśnie zaktualizowałem system do macOS 10.12, a kiedy próbuję wykonać go srmw Terminalu, mówi -bash: srm: command not found.

Jest srmusuwany? Jak to naprawić?

Niktin Roman
źródło
Na marginesie: srmbył umierającym projektem na początku 2000 roku. Apple wlało trochę zasobów do projektu i po raz pierwszy pojawia się w 10.3. Należy pamiętać, że korzystanie srmnie gwarantuje, że danych nie można odzyskać.
fd0
@ fd0, czy możesz wymyślić lepszy pomysł lub bezpiecznie usunąć pliki z dysku SSD na nowszych komputerach Mac?
Niktin Roman,
1
Pełne szyfrowanie dysku, chociaż go nie używam i rmlub opróżnij Kosz w GUI.
fd0
4
@NiktinRoman dla dysków SSD srm nie jest bardziej bezpieczny niż rm - srm ma sens tylko w przypadku dysków twardych. Podejrzewam, że to jest powód, dla którego został usunięty
151019

Odpowiedzi:

3

Jeszcze nie działa system macOS 10.12, jednak w systemie OS X 10.8.5 strona srmpodręcznika użytkownika w NOTESsekcji stwierdza:

Opracowanie i omówienie srm odbywa się na stronie < http://sourceforge.net/project/?group_id=3297 >, która jest również dostępna przez < http://srm.sourceforge.net >.

Teraz musisz pobrać kod źródłowy i skompilować go dla siebie. Wymagałoby to zainstalowania narzędzi wiersza polecenia dla Xcode. Nie jestem pewien, czy nadal ma zastosowanie w systemie macOS 10.12, jednak szczegółowe informacje można znaleźć w temacie Instalowanie narzędzi wiersza polecenia w systemie OS X Mavericks i Yosemite (bez Xcode) . Lub w terminalu użyj następującego polecenia:xcode-select --install

Pobrałem najnowszy kod źródłowy i skompilowałem go bez błędów w OS X 10.8.5, chociaż to nie znaczy, że będzie działał pod MacOS 10.12, ale prawdopodobnie jest to jedyny wybór, jaki masz, jeśli srmzostał usunięty.

To powiedziawszy, prawdopodobnie wolałbym tylko srmna obrotowych dyskach twardych, a nie na dyskach SSD.

użytkownik3439894
źródło
3
NB srm jest dostępny w wersji homebrew / dupes, jeśli używasz homebrew. Narzeka, że ​​MacOS już zapewnia to oprogramowanie. Nie jest to prawdą w Sierra, ale w każdym przypadku, aby użyć homebrew, aby go zainstalować, musiszbrew install srm && brew link --force srm
kojiro
1
@kojiro nie działa. „srm został usunięty z homebrew / core w commit 7957c4b98”
AfterWorkGuinness
@AfterWorkGuinness Prawda, Apple pozornie usunął srm, ponieważ sądzili, że zniszczy ssds ludzi. github.com/Homebrew/homebrew-dupes/issues/725 . Jestem nieco sceptyczny, że mieli dokładnie taki powód, ale chodzi o to, że polecenia bezpiecznego usuwania są mniej przydatne na ssd niż wirowanie rdzy. (Prawdopodobnie Apple nigdy nie
przyszło na myśl,
27

Z tego komentarza:

czy możesz wymyślić lepszy pomysł lub bezpiecznie usunąć pliki z dysku SSD na nowszych komputerach Mac? - Niktin Roman

Nie ma takiej potrzeby srm; pod warunkiem, że TRIM jest włączony na twoim komputerze 1

Obsługa TRIM obsługuje to za Ciebie. Po usunięciu pliku z dysku system operacyjny oznaczy przestrzeń plików jako „nieużywaną” - dotyczy to dowolnego dysku. Na dysku SSD, w przeciwieństwie do dysku twardego, wysyłane jest polecenie TRIM w celu wyczyszczenia danych w zaznaczonym miejscu. Dzięki temu dysk SSD może zapisywać dane w zaznaczonym miejscu, tak jakby były zupełnie nowe i nigdy nie były używane, i pomijać tradycyjny proces usuwania.

Jeśli szukasz większego bezpieczeństwa, włącz FileVault .

Per wsparcia Apple :

Uwaga: w przypadku dysku SSD Bezpieczne usuwanie i usuwanie wolnego miejsca nie są dostępne w Narzędziu dyskowym. Te opcje nie są potrzebne w przypadku dysku SSD, ponieważ standardowe kasowanie utrudnia odzyskanie danych z dysku SSD. Aby zwiększyć bezpieczeństwo, rozważ włączenie szyfrowania FileVault, gdy zaczniesz używać dysku SSD.

Odradzam również używanie, srmponieważ powoduje więcej i niepotrzebne operacje zapisu na dysku SSD, co skraca jego żywotność. Od strony man :

srm usuwa każdy określony plik poprzez zastąpienie, zmianę nazwy i
obcięcie go przed rozłączeniem


1 TRIM jest domyślnie włączony, jeśli komputer Mac został fabrycznie wyposażony w dysk SSD. jeśli po tym dodałeś dysk SSD, musisz włączyć TRIM, wydając polecenie sudo trimforce enablew terminalu.

Allan
źródło
3
To powinna być zaakceptowana odpowiedź.
LS
Czy TRIM zaznacza spację w ten sposób, gdy zapisujesz plik w terminalu (usunięte pliki nie pojawią się w Koszu) lub tylko jeśli usuniesz „regularnie” (przeniesiesz do Kosza)? Dzięki!
ScienceFriction,
1
„Kosz” to tylko ukryty folder w twoim katalogu domowym - ~/.Trash. Zatem „przeniesienie pliku do kosza” to po prostu przeniesienie pliku. Po opróżnieniu kosza następuje usunięcie pliku. Gdy plik jest faktycznie usuwany za pomocą tej metody lub za pomocą rmnastępuje TRIM.
Allan
2
Poleceniu TRIM nie należy ufać, aby niezawodnie usuwać dane z dysku SSD. Pozwala po prostu systemowi OS powiedzieć SSD, że niektóre bloki nie są już używane. Prawidłowe wdrożenie TRIM zależy od kontrolera oprogramowania wewnętrznego SSD. Producenci napędów nie mają tutaj dobrych osiągnięć. Nawet silniejsze polecenie „bezpiecznego wymazywania” ATA jest wdrażane niespójnie, nawet czasami zgłaszając sukces, gdy wszystkie dane pozostały na dysku. Aby uzyskać więcej informacji, patrz cseweb.ucsd.edu/~swanson/papers/Fast2011SecErase.pdf .
William Budington,
1
@WilliamBudington - Twoje informacje są bardzo nieaktualne. Zobacz ten post: apple.stackexchange.com/questions/269863/…
Allan
25

rm ma przełącznik -P, który trzy razy zastąpi plik przed usunięciem. Chyba lepsze niż nic.

Tomek
źródło
W tym przypadku jest to technicznie poprawne. Trzy razy nic nie jest lepsze niż nic.
Rimian
9

Aby bezpiecznie usunąć plik / folder na MacOS Sierra bez zewnętrznych narzędzi skorzystać rmz -Pprzełącznika:

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

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

Od strony man :

 -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

UWAGA : W przypadku zainstalowania coreutils GNU z homebrew z domyślnymi nazwami, np. W brew install coreutils --default-nameszależności od tego, jak skonfigurowałeś ŚCIEŻKĘ, wersja GNU rmmoże śledzić wersję Mac /bin/rmi nie zaakceptuje tej -Popcji. Użyj, which -a rmaby dwukrotnie sprawdzić.

ccpizza
źródło
7

Od czasu pierwotnej odpowiedzi na to pytanie wydarzyły się dwie rzeczy:

  • homebrew-dupes został połączony w homebrew-core
  • srm został usunięty z homebrew-core

Jeśli spróbujesz go teraz zainstalować, otrzymasz szczegółowe informacje na temat kasowania zatwierdzenia i sugestię, aby utworzyć własne stuknięcie, jeśli nadal go potrzebujesz. Zrobiłem to tutaj .

Możesz go zainstalować za pomocą Homebrew :brew install khell/homebrew-srm/srm

Cameron Yan
źródło
2

Użyj Homebrew , jak sugerowano tutaj :

brew install homebrew/dupes/srm
brew link --force srm
n1000
źródło
0

Istnieje wiele dobrych powodów, aby nie używać bezpiecznych narzędzi usunięciem ( srm, shred, rm -P, etc) na nowoczesnych systemach (z obsługą TRIM SSD i / lub osadzony systemów plików). W szczególności odpowiedź @ Allana jest natychmiastowa.

Jednakże, jeśli naprawdę , naprawdę chcesz przywrócić srm, ktoś opublikował Homebrew kurek tutaj , że prace. To znaczy:

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

( Oczywiście po zainstalowaniu Homebrew .)

Molomby
źródło
-2

sudo port zainstaluj srm, który to zrobi

Roberto Domingos
źródło
3
Prawdopodobnie doprowadzi to do -bash: port: command not foundbłędu, więc tutaj może być wymaganych więcej szczegółów.
nohillside
1
Zainstaluj macports: macports.org/install.php
eggonlegs
Tak właśnie zrobiłem, gdy Macports został odinstalowany podczas aktualizacji systemu operacyjnego. Jest to preferowana metoda w mojej książce, ale nie jest to pełna odpowiedź, więc nie mogę głosować w górę ... no cóż. Następnie użyłem polecenia sudo srm -RfvD TargetDirectoryToWipe . Not on a SSD ...
NOTjust - user4304