Saya sering bertanya-tanya seberapa jauh sistem akan benar-benar dapatkan jika Anda menjalankannya rm -rf /
. Saya ragu OS akan dapat menghapus dirinya sendiri (?)
Pertanyaan Bonus : Setelah perintah dieksekusi, apakah rm
sudah dihapus sendiri?
Pembaruan: Saya telah menguji ini di beberapa distribusi unix utama menggunakan VirtualBox dan jawabannya menggambarkan apa yang terjadi. Jika diberi parameter yang benar, rm akan menghapus setiap bit data fisik pada disk. Namun, saya mengalami beberapa masalah saat menggunakan versi rm selain dari GNU. Sebagai contoh, saya percaya BusyBox memiliki versi mereka sendiri dan tidak memungkinkan Anda menghapus sebanyak mungkin.
Pertanyaan ini adalah Pertanyaan Pengguna Super Minggu Ini .
Baca entri blog 7 Juli 2011 untuk perincian lebih lanjut atau kirimkan Pertanyaan Anda Minggu Ini.
sumber
sudo rm -rf /
di linux tinycore / microcore dan tampaknya OS melindungi beberapa direktori (/ sys dan lainnya) agar tidak dihapus.rm -f /bin/rm
sekali. Sayangnya, itu berhasil, dan saya menghabiskan satu jam berikutnya untuk mendapatkan versi yang tepatrm
dari GNU coreutils.Jawaban:
Jika Anda memiliki
rm
dari GNU coreutils (kemungkinan besar jika itu adalah distro Linux biasa),rm -rf /
akan ditolak oleh perlindungan bawaan (menurut manual dan Wikipedia, belum pernah mencobanya).Anda dapat mengganti perlindungan ini dengan
--no-preserve-root
.rm
kemudian akan menghapus semua yang mungkin bisa, tanpa berhenti setelah berusaha menghapus setiap file. Tentu saja itu tidak akan menghapus sistem file virtual seperti/proc
dan/sys
, tapi itu tidak relevan - itu akan menghapus semua yang ada di disk Anda.Setelah perintah selesai, disk Anda akan dihapus, termasuk OS. Kernel dan proses saat ini akan terus berjalan dari memori, tetapi banyak proses akan mati karena mereka gagal mengakses beberapa file. OS akan gagal mem-boot lain kali.
sumber
--no-preserve-root
karena itu biasanya tidak disebutkan.Bagi mereka yang suka melakukan hal-hal seperti ini secara visual sambil mendengarkan musik techno.
Menjalankan rm- rf di Linux (video)
Poin bonus jika Anda dapat memberi nama proses saat mereka mulai mati.
sumber
Menyiapkan VM dan mencoba bersenang-senang?
Ini akan berjalan cukup jauh ... jika Anda menggunakan gui, Anda mungkin akan senang melihat hal-hal menurun lebih terlihat. (Ikon pada menu berhenti memuat dll.)
Jika Anda membiarkannya pergi, OS akan cukup banyak di luar pemulihan meskipun Anda mungkin bisa mendapatkan kembali beberapa data dengan mudah.
Either way, Anda akan ingin melakukan instal ulang OS.
sumber
Ya, mencobanya di http://bellard.org/jslinux/ menghasilkan:
sumber
Saya ingat ini sedang dikunyah pada
alt.sysadmin.recovery
hari-hari dahulu kala, ketika tidak ada hal seperti itu/proc
, dan/dev
hanya direktori biasa yang berisi entri untuk sekelompok inode yang tidak biasa ...... tetapi, pada beberapa varian Unix (ingatan saya adalah HP-UX, tapi itu bisa saja salah), Anda tidak dapat menghapus entri direktori terakhir untuk program yang sedang berjalan. (Perpustakaan bersama? Apa itu?)
Pada sistem seperti itu, jika Anda memulai satu dalam mode pemeliharaan (jadi tidak ada yang berjalan kecuali shell Anda, bahkan
init
, dan tidak ada sistem file sekunder yang dipasang) dan melakukannyaexec /bin/rm -rf /
, Anda akan dibiarkan dengan sistem file root yang benar-benar kosong kecuali itu/bin
dan/bin/rm
akan bertahan.Para penghuni biara setan menakutkan menganggap ini pantas dan pantas.
sumber
rm -rf /
tidak boleh diizinkan pada implementasi terbaru karena telah disarankan itu melanggar standar POSIX:"
rm -rf /
" perlindungan di blog Oraclesumber
/foo/..
bahkan jika Anda tidak masuk/foo
. Itu tidak menentukan bahwa Anda tidak diperbolehkan untuk menghapus direktori saat ini (misalnyarm -r `pwd`
) atau orang tua dari direktori saat ini.Satu hal yang saya lihat tidak dibuat oleh orang lain: file yang saat ini terbuka (misalnya rm itu sendiri), bahkan jika dihapus, tidak akan benar-benar hilang dari drive sampai ditutup.
sumber
rm
akan menghapus dirinya sendiri dari fs - program ini benar-benar dimuat dalam memori, bukan fileKarena pernah mencobanya sekali (pada server yang membuatku kesal), login sebagai root, di terminal, Anda akan kehilangan hampir semuanya. Satu-satunya hal yang tidak akan dihapus hanya proses yang penting untuk OS.
sumber
/boot
,/sbin
,/etc
,/bin
,/vmlinuz
? Bam, pergi. Selamat mencoba booting tanpa itu - pada kenyataannya, semoga berhasil melakukan apa saja setelah penghapusan selesai.chmod -fR 777 /
berbahaya karena mematikan bit setuid dan setgid.Seberapa jauh Anda bisa mendapatkan, itu pada dasarnya tergantung pada distribusi Unix / Linux tertentu.
Tetapi untuk menjawab pertanyaan dasar Anda, ya -
rm
perintah akan dihapus bersamanya serta perintah standar lainnya di/bin
dan folder lainnya.Ini adalah tes sederhana yang telah saya lakukan di Linux Ubuntu 15.04 menggunakan VM.
Inisialisasi mesin virtual melalui
vagrant
:Kemudian ketika Anda mencoba untuk menghapus semua file dengan cara standar, itu tidak memungkinkan Anda:
Jadi mari kita coba
--no-preserve-root
. Selalu periksa ulang Anda masuk mesin virtual (jadi Anda mengalamivagrant@vagrant-ubuntu-vivid-64:~$
), kemudian jalankan (jangan coba itu di rumah):Setelah itu ia kembali ke shell prompt seperti tidak ada yang baru saja terjadi, tetapi Anda tidak dapat menjalankan perintah apa pun selain beberapa built in dan
kill
, sehingga Anda dapat menyelesaikan pekerjaan Anda dan membunuh sesi Anda :)Sebagai contoh:
Jadi itu cukup menghapus semuanya, termasuk
rm
,ls
dan semua perintah lain, tetapi Anda tetap masuk. Ada beberapa folder khusus yang tidak dihapus seperti beberapa perangkat dari/dev
,/proc
atau/sys
yang bukan direktori / file biasa, tetapi itu pseudo-filesystem yang menyediakan antarmuka untuk memproses dan data kernel.Jika Anda tidak memiliki Vagrant atau Linux, Anda dapat bermain dengan beberapa emulator JavaScript Linux x86 .
Jika Anda tertarik pada kemungkinan pulih dari bencana seperti itu, periksa:
sumber