Używanie „shred” z wiersza poleceń

44

Muszę bezpiecznie usunąć niektóre pliki. Użyłem shredw systemach Linux wcześniej, więc rozejrzałem się i stwierdził, że shredjest częścią coreutilspakietu w DarwinPorts. Zrobiłem port install coreutilszainstalować coreutils, ale wciąż nie mogę znaleźć shredw wierszu poleceń.

Jak mogę rozpocząć shredpracę w wierszu poleceń mojego komputera Mac? Jeśli to ważne, używam Mac OS X 10.7.5 (Lion)

inspectorG4dget
źródło
Uwaga: bezpieczeństwo shredzależy od używanego systemu plików, nie wiem, jak skuteczne jest to w HFS.
Flimm,
1
shred nie działa na kronikowane systemy plików, dlatego nie jest dostępny. SRM również okazał się nieskuteczny. Po prostu usuń normalnie, a modlitwa wydaje się jedyną nadzieją w systemach plików hfs + kronikowanych
Kevin Johnson
Naprawdę?! Czy możesz porozmawiać o tym, dlaczego to nie jest skuteczne?
inspectorG4dget
1
Kronikowane systemy plików rejestrują zmiany, które zostaną wprowadzone przed zapisem na dysku. Można go użyć do odzyskiwania po uszkodzeniu plików lub odzyskiwania danych, które zostały zniszczone. Zobacz en.wikipedia.org/wiki/Journaling_file_system
Alex Mooney,

Odpowiedzi:

27

port install coreutilsdodaje przedrostek ag do nazw plików binarnych, więc shred to /opt/local/bin/gshred.

Lri
źródło
9
brew install coreutilssprawia, że gshreddostępne dla osób korzystających Homebrew.
davidjb
59

OSX ma wbudowane polecenie srmbezpiecznego usuwania plików. Zobacz https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/srm.1.html . Możesz także użyć rm -Pdo trzykrotnego zastąpienia plików sekwencjami bajtów.

W wersji sierra lub nowszej macOS nie zawiera już srm. Ale użytkownicy mogą zainstalować go z Homebrew:

brew install homebrew/dupes/srm && brew link --force homebrew/dupes/srm
Lily Hahn
źródło
1
Jasne, ale shred pozwala mi ustawić liczbę nadpisań. Te narzędzia nie. Wszelkie pomysły na uzyskanie tej funkcjonalności?
inspectorG4dget
2
+1 Doskonała odpowiedź. Nie wiedziałem, że srmpolecenie istnieje. Nadpisuje, zmienia nazwę i obcina plik przed jego usunięciem. To plus 7 przepustek zgodnych z DoD w USA (0xF6, 0x00, 0xFF, losowy, 0x00, 0xFF, losowy) (opcja -m) gwarantują, że pliku nie można odzyskać.
Tulains Córdova
3
Od macOS Sierra srmnie jest już uwzględniony.
y3sh
1
Użytkownicy systemu macOS mogą zainstalować za srmpomocą polecenia brew brew install homebrew/dupes/srm.
hd.deman
1
homebrew/dupesjest teraz przestarzałe Wydaje się, że srmzostał usunięty i nie został przeniesiony do homebrew-core.
davidjb
18

Odpowiedź @ user495470 jest prawidłowa dla postawionego pytania. Problemem nie jest ani srmczy shrednaprawdę ma sens dla nowoczesnych systemów.

Wynika to głównie z dysków SSD. W przeciwieństwie do dysków magnetycznych, nowoczesne dyski z obsługą TRIM automatycznie usuwają usunięte dane w tle.

Dyski SSD wykonują również wyrównywanie zużycia. Powoduje to, że próby „nadpisania” pliku są zarówno daremne (będziesz zapisywać w innej fizycznej lokalizacji), jak i niepożądane (niepotrzebnie przyczynia się do zużycia dysku).

Wszystkie komputery Mac dostarczane z dyskami SSD mają włączoną funkcję TRIM.

Innym problemem jest system plików, w szczególności kronikowane systemy plików, które mogą przechowywać kopie danych w innym miejscu, zanim zostaną zapisane.

Nawet na nośnikach magnetycznych może to powodować problemy zarówno srm:

Wszyscy użytkownicy [...] powinni mieć świadomość, że srm będzie działał tylko w systemach plików, które nadpisują istniejące bloki. W szczególności NIE będzie działać na [...] zdecydowanej większości kronikowanych systemach plików.

I shred:

[..] shred opiera się na bardzo ważnym założeniu: że system plików nadpisuje dane w miejscu. [..] wiele nowoczesnych projektów systemów plików nie spełnia tego założenia. Wyjątki obejmują: systemy plików o strukturze dzienników lub kronikowane [..]

Woluminy HFS Plus są domyślnie kronikowane od wersji Mac OS X 10.3.

W dzisiejszych czasach najlepszym sposobem na bezpieczne „usunięcie” plików jest włączenie FileVault (aby nigdy nie zapisywać dysku w postaci niezaszyfrowanej), a następnie po prostu usunąć je i pozwolić TRIM-owi je rozwiązać.

Jeśli z powodu nieszczęścia jesteś na nośniku magnetycznym, masz wyłączone dziennikowanie i z jakiegoś powodu nie możesz zaszyfrować dysku, masz następujące opcje:

  • Użyj, rm -Pktóry zastępuje pliki 0xff, następnie 0x00, a potem 0xffjeszcze raz
  • Zainstaluj coreutilsdla gshred(tj. brew install coreutils && gshred secrets.txt)
  • srmzostał usunięty z homebrew-dupesa homebrew-corejednak ktoś opublikował kurek tutaj , że prace (tzn. brew install khell/homebrew-srm/srm && srm secrets.txt)
  • Fizyczne zniszczenie medium :)
Molomby
źródło
Ale myślę, że niszczenie jest nadal w porządku, jeśli zniszczysz całą partycję lub cały dysk.
Konstantin
Masz na myśli shred /dev/hda? Tak, chyba tak. Bloki adresowane przez system operacyjny są jednak nadal pobierane z pamięci fizycznej i potencjalnie są odwzorowywane podczas niszczenia. Zastanawiam się, czy jakiekolwiek implementacje wyrównania zużycia i rezerwy miejsca mogą spowodować, że to nie zawsze zadziała.
Molomby,
+1 za wyjaśnienie, dlaczego niszczenie jest bezcelowe na dyskach SSD oraz sugestię użycia FileVault. Czy dziennik APFS jest zapisany w dzienniku, czy wiemy, jak obsługuje usuwanie plików? (Prawdopodobnie powinien to być osobny wątek!)
Stuart H
1
Wydaje się, że istnieje założenie, że bezpieczne usuwanie jest potrzebne tylko w przypadku dysków „wewnętrznych”. Dołączone dyski są dostępne we wszystkich formach i srm będzie odpowiedni dla niektórych z nich.
Rondo