SRM hilang di macOS Sierra (10.12)

33

Saya baru saja memperbarui ke macOS 10.12 dan ketika saya mencoba mengeksekusi srmdi Terminal, katanya -bash: srm: command not found.

Sudah srmdihapus? Bagaimana cara memperbaikinya?

Niktin Roman
sumber
Sebagai catatan: srmadalah proyek yang sekarat di awal tahun 2000-an. Apple menuangkan beberapa sumber daya ke dalam proyek dan itu pertama kali muncul di 10.3. Anda harus menyadari bahwa menggunakan srmtidak menjamin data tidak dapat dipulihkan.
fd0
@ fd0, dapatkah Anda menghasilkan ide yang lebih baik atau menghapus file dari SSD dengan aman di mac yang lebih baru?
Niktin Roman
1
Enkripsi disk penuh, meskipun saya tidak menggunakannya, dan rmatau mengosongkan Sampah di GUI.
fd0
4
@NiktinRoman untuk SSD srm tidak lebih aman daripada rm - srm hanya masuk akal untuk hard disk. Saya menduga ini adalah alasannya telah dihapus
user151019

Jawaban:

3

Namun belum menjalankan macOS 10.12 di bawah OS X 10.8.5 halaman manual untuk srmdi NOTESbagian menyatakan:

Pengembangan dan diskusi tentang srm dilakukan di < http://sourceforge.net/project/?group_id=3297 >, yang juga dapat diakses melalui < http://srm.sourceforge.net >.

Sekarang Anda harus mengunduh kode sumber dan mengompilasinya sendiri. Ini membutuhkan Command Line Tools untuk menginstal Xcode. Namun, tidak yakin apakah masih berlaku di macOS 10.12, lihat Cara Memasang Alat Baris Perintah di OS X Mavericks & Yosemite (Tanpa Xcode) untuk detailnya. Atau di Terminal gunakan perintah berikut:xcode-select --install

Saya mengunduh kode sumber terbaru dan dikompilasi tanpa kesalahan di OS X 10.8.5, meskipun itu tidak berarti itu akan di bawah macOS 10.12 tetapi itu mungkin satu-satunya pilihan yang Anda miliki jika srmtelah dihapus.

Yang mengatakan, saya mungkin hanya srmpada HDD rotasi bukan SSD.

pengguna3439894
sumber
3
NB srm tersedia dalam homebrew / dupes jika Anda menggunakan homebrew. Ini akan mengeluh bahwa MacOS sudah menyediakan perangkat lunak ini. Itu tidak benar di Sierra, tetapi dalam hal apa pun untuk menggunakan homebrew untuk menginstalnya Anda harusbrew install srm && brew link --force srm
kojiro
1
@ Kojiro tidak bekerja. "srm dihapus dari homebrew / core di commit 7957c4b98"
AfterWorkGuinness
@AfterWorkGuinness Benar, Apple seolah-olah menghapus srm karena mereka pikir itu akan menghancurkan SSD orang. github.com/Homebrew/homebrew-dupes/issues/725 . Saya agak skeptis bahwa mereka memiliki alasan yang tepat dalam pikiran, tetapi intinya tetap bahwa aman-hapus perintah kurang berguna pada SSD daripada berputar karat. (Ini mungkin tidak pernah terjadi ke Apple bahwa seseorang mungkin ingin untuk menghubungkan dist berputar karat.)
Kojiro
27

Dari komentar ini:

dapatkah Anda menemukan ide yang lebih baik atau menghapus file dari SSD dengan aman pada mac yang lebih baru? - Niktin Roman

Tidak perlu srm; asalkan TRIM diaktifkan pada mesin Anda 1

Dukungan TRIM menangani ini untuk Anda. Ketika Anda menghapus file dari drive Anda, OS akan menandai ruang file sebagai "tidak digunakan" - ini berlaku untuk drive apa pun. Pada SSD, tidak seperti HDD, perintah TRIM dikirim untuk menghapus data dalam ruang yang ditandai. Hal ini memungkinkan SSD Anda untuk dapat menulis data ke ruang yang ditandai seolah-olah itu baru dan tidak pernah digunakan, dan melewati proses penghapusan tradisional.

Jika Anda mencari keamanan lebih, hidupkan FileVault .

Per Dukungan Apple :

Catatan: Dengan drive SSD, Secure Erase dan Erasing Free Space tidak tersedia di Disk Utility. Opsi ini tidak diperlukan untuk drive SSD karena penghapusan standar membuatnya sulit untuk memulihkan data dari SSD. Untuk keamanan lebih lanjut, pertimbangkan menghidupkan enkripsi FileVault ketika Anda mulai menggunakan drive SSD Anda.

Saya juga menyarankan agar tidak menggunakan srmkarena ini mengeluarkan lebih banyak dan tidak perlu operasi tulis ke SSD, sehingga memperpendek umurnya. Dari halaman manual :

srm menghapus setiap file yang ditentukan dengan menimpa, mengganti nama, dan
memotongnya sebelum memutuskan tautan


1 TRIM diaktifkan secara default jika Anda Mac Anda dilengkapi dengan SSD yang sudah diinstal. jika Anda menambahkan SSD setelah fakta, maka Anda harus mengaktifkan TRIM dengan mengeluarkan perintah sudo trimforce enabledi Terminal.

Allan
sumber
3
Ini harus menjadi jawaban yang diterima.
LS
Apakah TRIM menandai ruang dengan cara ini ketika Anda rm file di terminal (file yang dihapus tidak akan muncul di Sampah) atau hanya jika Anda menghapus "secara teratur" (pindahkan ke Sampah)? Terima kasih!
ScienceFriction
1
"Sampah" hanyalah folder tersembunyi di direktori home Anda - ~/.Trash. Jadi "memindahkan file ke tempat sampah" hanya itu - memindahkan file. Ketika Anda mengosongkan sampah adalah saat Anda benar-benar menghapus file. Ketika file sebenarnya dihapus melalui metode ini atau via rmadalah ketika TRIM berlaku.
Allan
2
Perintah TRIM seharusnya tidak dipercaya untuk menghapus data pada SSD dengan andal. Ini hanya memungkinkan OS untuk memberi tahu SSD bahwa blok tertentu tidak lagi digunakan. Terserah pengontrol firmware SSD untuk mengimplementasikan TRIM dengan benar. Produsen drive tidak memiliki rekam jejak yang baik di sini. Bahkan perintah ATA "secure erase" yang lebih kuat diimplementasikan secara tidak konsisten, bahkan terkadang melaporkan keberhasilan ketika semua data tetap berada di drive. Lihat cseweb.ucsd.edu/~swanson/papers/Fast2011SecErase.pdf untuk info lebih lanjut.
William Budington
1
@ WilliamBudington - informasi Anda sangat ketinggalan zaman. Lihat posting ini: apple.stackexchange.com/questions/269863/…
Allan
25

rm memiliki -P switch yang akan menimpa file tiga kali sebelum menghapus. Lebih baik daripada tidak sama sekali, kurasa.

Tom
sumber
Dalam kasus penggunaan ini, ini secara teknis benar. Tiga kali tidak ada yang lebih baik daripada tidak sama sekali.
Rimian
9

Untuk menghapus file / folder dengan aman di MacOS Sierra tanpa utilitas eksternal gunakan rmdengan -Psakelar:

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

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

Dari halaman manual :

 -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

CATATAN : Jika Anda menginstal GNU coreutils dari homebrew dengan nama default, misalnya brew install coreutils --default-names, tergantung pada bagaimana Anda mengkonfigurasi PATH Anda, versi GNU rmdapat membayangi versi Mac di /bin/rmdan tidak akan menerima -Popsi. Gunakan which -a rmuntuk mengecek.

ccpizza
sumber
7

Sejak pertanyaan ini dijawab, dua hal telah terjadi:

  • homebrew-dupes digabung menjadi homebrew-core
  • srm telah dihapus dari homebrew-core

Jika Anda mencoba untuk menginstalnya sekarang, itu akan memberi Anda rincian tentang komit penghapusan dan saran untuk membuat keran Anda sendiri jika Anda masih membutuhkannya. Saya sudah melakukannya di sini .

Anda dapat menginstalnya menggunakan Homebrew :brew install khell/homebrew-srm/srm

Cameron Yan
sumber
2

Gunakan Homebrew , seperti yang disarankan di sini :

brew install homebrew/dupes/srm
brew link --force srm
n1000
sumber
0

Ada banyak alasan yang baik untuk tidak menggunakan alat penghapusan aman ( srm, shred, rm -P, dll) pada sistem modern (dengan TRIM-enabled SSD dan / atau file sistem journalled). @ Jawaban Allan khususnya tepat.

Namun, jika Anda benar - benar ingin memulihkan srm, seseorang menerbitkan keran Homebrew di sini yang berfungsi. Yaitu:

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

(Setelah Anda menginstal Homebrew , tentu saja.)

Molombi
sumber
-2

sudo port install srm yang akan dilakukan

Roberto Domingos
sumber
3
Mungkin akan menyebabkan -bash: port: command not foundkesalahan, sehingga beberapa detail lebih lanjut mungkin diperlukan di sini.
nohillside
1
Instal macports: macports.org/install.php
eggonlegs
Ini adalah apa yang saya lakukan ketika Macports dihapus instalasinya selama beberapa peningkatan OS mungkin. Ini adalah metode yang disukai dalam buku saya, tetapi bukan jawaban yang lengkap sehingga tidak dapat dipilih ... oh well. Perintah saya kemudian menggunakan sudo srm -RfvD TargetDirectoryToWipe . Bukan pada SSD ...
NOTjust - user4304