Perintah shred Linux: timpa data file dan pahami batas sanitasi
GNU shred menimpa data file dengan pola tertentu dan, jika diberi -u, juga mencoba menghapus namanya. Perintah ini tidak menjamin semua salinan fisik hilang: pengendali SSD, snapshot, salinan sistem berkas, dan cadangan dapat menyimpan data di lokasi lain.
Contoh-contoh menggunakan perilaku GNU Coreutils. Periksa shred --help, man shred, dan dokumentasi distribusi Anda ketika portabilitas atau opsi khusus versi menjadi penting.
Apa itu perintah shred?
shred bekerja pada jalur logis yang dibuka untuk penulisan. Manfaatnya bergantung pada apakah penulisan itu benar-benar mengganti lokasi data sebelumnya. Pada solid-state drive (SSD), penyalinan saat penulisan (copy-on-write), snapshot, atau lapisan penyimpanan yang memetakan ulang blok, asumsi tersebut dapat gagal. Memeriksa byte file setelah operasi hanya mengamati tampilan logis, bukan seluruh media fisik. Sanitasi media bertujuan membuat akses ke data tidak layak dilakukan pada tingkat upaya yang ditetapkan; memilih perintah saja belum membuktikan tujuan itu tercapai.
Sintaks Dasar
shred [OPSI]... FILE...
Kutip jalur yang mengandung spasi. Jika didukung, letakkan -- sebelum operand yang diawali dengan tanda hubung agar tidak dianggap sebagai opsi.
Penggunaan dasar shred
Menimpa file latihan
Buat direktori latihan baru milik Anda, misalnya direktori hasil mktemp -d yang Anda masuki dengan cd. Pastikan secret.txt belum ada, lalu buat data tidak penting dengan printf 'contoh\n' > secret.txt. Periksa jalur absolut dan jenis file sebelum menjalankan contoh. Operasi tanpa -u mengubah isi tetapi meninggalkan nama file.
shred secret.txt
Setelah berhasil, secret.txt masih ada dengan isi berbeda. Secara bawaan, GNU dapat memperbesar file sampai batas blok; gunakan -x jika ukuran file latihan harus tetap tepat. Nama secret.txt di sini hanya contoh, bukan anjuran menjalankan latihan pada data rahasia yang sebenarnya.
Timpa dan hapus file
Pada file latihan yang sama, -u meminta penghapusan setelah penimpaan. Anda juga dapat membuat ulang file latihan baru sebelum mencoba bentuk berikut. Baca status dan diagnostik, bukan hanya keberadaan nama sesudahnya; file yang sudah ditimpa tidak dikembalikan ke isi lama jika tahap berikutnya gagal.
shred -u secret.txt
GNU membedakan metode --remove=unlink, --remove=wipe, dan --remove=wipesync. Metode tersebut mengatur penghapusan atau pengaburan nama dan sinkronisasi direktori; tidak menghilangkan salinan pada snapshot atau cadangan.
Tampilkan kemajuan
Siapkan disk-image.raw sebagai file latihan biasa, misalnya printf 'citra latihan\n' > disk-image.raw, bukan jalur perangkat blok. -n 3 meminta tiga putaran penimpaan dan -v mengirim informasi kemajuan ke keluaran kesalahan standar (stderr). Angka kemajuan bukan ukuran kepastian sanitasi fisik.
shred -v -n 3 disk-image.raw
Memeriksa nama yang hilang dan batas kesimpulannya
Jalankan rangkaian berikut hanya di direktori latihan baru. && mencegah pemeriksaan nama menutupi kegagalan pembuatan file atau penimpaan; status langsung dicetak setelah pemeriksaan. Pastikan nama contoh belum ada agar penyiapan tidak menimpa file milik Anda.
printf 'demo\n' > disposable-demo.txt &&
shred -u -- disposable-demo.txt &&
test ! -e disposable-demo.txt &&
test ! -L disposable-demo.txt
printf '%s\n' "$?"
Keluaran 0 berarti seluruh rangkaian berhasil dan nama contoh tidak lagi tersedia, termasuk sebagai symlink putus, pada direktori yang dapat diakses. Hasil itu tidak membuktikan tidak ada data lama pada SSD, jurnal, snapshot, atau cadangan. Status bukan nol perlu ditelusuri karena operasi dapat sudah mengubah sebagian data.
Opsi utama
| Opsi | Tujuan |
|---|---|
-n N |
Menentukan jumlah putaran penimpaan sebelum putaran nol tambahan dari -z. |
-u |
Hapus file setelah menimpanya. |
-z |
Tambahkan lintasan terakhir yang diisi dengan nol. |
-v |
Laporkan kemajuan. |
-s SIZE |
Menimpa sejumlah byte dari awal file; dapat meninggalkan bagian akhir atau memperbesar file bila ukuran diminta lebih besar. |
-x |
Jangan bulatkan file ke blok penuh. |
-f |
Mencoba menyesuaikan izin agar dapat menulis; bukan cara melewati semua pembatasan sistem. |
--random-source=FILE |
Pilih sumber byte acak. |
Periksa bantuan GNU versi lokal karena portabilitas dan fitur berbeda menurut implementasi. -z menambah satu putaran berisi nol di luar putaran -n; -n 1 -z berarti dua putaran, bukan satu. -x membatasi pembulatan ukuran file, bukan menghapus salinan di tempat lain. Opsi -s tidak boleh dianggap sebagai penghapusan seluruh file jika jumlah byte yang dipilih lebih kecil dari isinya.
Contoh praktis
Menghitung putaran penimpaan
Siapkan confidential.bin sebagai file latihan baru berisi data tidak penting. Contoh meminta satu putaran biasa, satu putaran nol tambahan, lalu penghapusan nama. Jangan menafsirkan jumlah putaran sebagai sertifikasi sanitasi media; metode harus sesuai perilaku perangkat dan ancaman yang ingin ditangani.
shred -v -n 1 -z -u confidential.bin
Identifikasi perangkat blok terlebih dahulu
Perintah pemeriksaan berikut berasal dari util-linux pada Linux dan tidak menulis ke perangkat. Baca ukuran, model, nomor seri, sistem berkas, serta hubungan mount. MOUNTPOINTS dapat menampilkan beberapa lokasi mount untuk satu perangkat. Cocokkan dengan identitas inventaris dan pastikan tidak ada data atau proses yang masih memerlukan perangkat sebelum prosedur penghapusan yang terpisah.
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS
findmnt
Daftar yang berhasil ditampilkan bukan persetujuan untuk menimpa disk. Tidak ada perintah penimpaan perangkat blok pada contoh ini. Jika media akan disanitasi, pilih prosedur yang sesuai jenis perangkat dan kebijakan, termasuk penghentian penggunaan serta pelepasan mount yang relevan; salah mengidentifikasi satu jalur dapat menghancurkan sistem berkas lain.
Memahami penghapusan kriptografis
Penghapusan kriptografis (cryptographic erase) menargetkan kunci yang melindungi data terenkripsi. Pedoman National Institute of Standards and Technology (NIST), SP 800-88 Rev. 2, menjelaskan bahwa penerapannya memerlukan penilaian enkripsi, riwayat data tanpa enkripsi, dan kemampuan meniadakan semua salinan kunci yang relevan. Cadangan data atau kunci memerlukan penanganan tersendiri. Mengubah kata sandi saja tidak membuktikan kunci data lama sudah dimusnahkan.
Jika ada mapping bernama encrypted-volume, contoh berikut hanya menampilkan statusnya. Sesuaikan dengan nama mapping yang memang ada; perintah ini bukan penghapusan kunci atau sanitasi.
cryptsetup status encrypted-volume
cryptsetup status melaporkan mapping, bukan membuktikan cakupan enkripsi atau keberhasilan penghapusan data. Untuk pembuangan media, pilih metode perangkat atau pemusnahan yang sesuai dan validasi hasilnya berdasarkan standar serta kebijakan yang berlaku.
shred dan Perintah Terkait
| Perintah atau metode | Peran utama | Penggunaan yang sesuai |
|---|---|---|
rm |
Menghapus nama file; ruang dapat dipakai ulang setelah tidak ada tautan atau proses yang mempertahankannya. | Penghapusan biasa |
shred |
Mencoba menulis berulang kali ke data logis yang sama | Kasus penyimpanan yang kompatibel terbatas |
| Penghapusan aman perangkat | Gunakan penghapusan tingkat firmware atau penghancuran kunci | Media yang mendukung prosedur sanitasi terverifikasi dari perangkat atau standar |
| Penghancuran fisik | Hancurkan media penyimpanan | Media tidak akan dipakai ulang dan metode memenuhi kebutuhan data serta kebijakan |
Perhatian Penting
Penulisan SSD mungkin mencapai sel fisik yang berbeda
Wear leveling meratakan penggunaan sel SSD untuk memperpanjang usia perangkat. Akibat pemetaan internal dan blok cadangan, menulis ulang alamat logis belum tentu menimpa sel fisik yang menyimpan data lama.
Salinan sistem file lainnya bisa tetap ada
Jurnal data, snapshot, blok copy-on-write, redundansi Redundant Array of Independent Disks (RAID), sinkronisasi, dan cadangan dapat menyimpan salinan di luar nama file. Tidak semua sistem berkas berjurnal menyimpan isi file di jurnal; mode dan konfigurasi penyimpanannya menentukan risiko. shred tidak mendeteksi dan membersihkan seluruh salinan tersebut secara otomatis.
Hindari salah target dan periksa tautan
Periksa juga hubungan tautan sebelum memilih target. Penimpaan file yang memiliki beberapa tautan keras mengubah data bersama; -u hanya menghapus nama yang disebutkan, sehingga nama lain dapat tetap ada dengan data yang sudah berubah. Hindari operand symlink yang ternyata menuju lokasi lain. Setelah kegagalan atau interupsi, jangan menganggap file masih utuh atau sudah selesai ditangani.
FAQ
Apakah shred -u menjamin bahwa pemulihan tidak mungkin dilakukan?
Tidak. Pemetaan ulang penyimpanan, sistem file, snapshot, dan cadangan bisa menyimpan salinan lain.
Apakah shred tepat untuk file pada SSD?
Penimpaan file individual tidak dapat diandalkan untuk mencakup seluruh data SSD karena pemetaan internal. Pilih enkripsi sejak awal dan prosedur sanitasi perangkat yang sesuai; enkripsi yang diaktifkan belakangan tidak otomatis menghilangkan jejak data lama.
Apakah -z membuat penghapusan lebih aman?
Ini menambahkan lintasan nol terakhir tetapi tidak menghapus salinan di tempat lain atau menjamin sanitasi.
Kapan memakai rm dan kapan memakai shred?
Gunakan rm untuk penghapusan biasa. Gunakan shred hanya setelah mengevaluasi teknologi penyimpanan dan model ancaman.
Dokumentasi resmi
Referensi perintah Linux menurut tugas (bahasa Inggris) memberi konteks pengelolaan file lainnya.




