rm /*
harus menghapus sangat sedikit. Tidak ada -r
bendera di sana yang akan menghapus apa pun secara rekursif, dan tanpa itu direktori tidak akan dihapus (dan bahkan jika direktori dihapus, hanya yang kosong yang dapat dihapus). Jawaban ini didasarkan pada asumsi bahwa Anda tidak menjalankan rm -rf /*
.
Satu-satunya file di root filesystem konsekuensi mungkin adalah symlink ke kernel dan initrd (walaupun pada satu sistem Ubuntu yang saya lihat, mereka tidak ada) atau /lib64
symlink pada sistem 64-bit.
Masalahnya mungkin saja bahwa /lib64 -> /lib
symlink telah dihapus. Itu cukup jahat, karena hampir setiap program akan bergantung pada symlink itu:
$ ldd /bin/bash
...
/lib64/ld-linux-x86-64.so.2 (0x00007f8946ab7000)
Itu ld-linux
adalah pemuat dinamis, dan jika tidak tersedia, Anda tidak dapat menjalankan executable dinamis apa pun. Ini akan membuatnya sangat sulit untuk masuk, dan Anda mungkin tidak bisa sama sekali.
Satu penyelamat mungkin busybox
. Jalankan ini untuk memeriksa:
$ ldd /bin/busybox
not a dynamic executable
Dalam hal ini, busybox seharusnya bisa dijalankan, tetapi pertanyaannya adalah bagaimana Anda bisa menjalankannya?
Jika Anda memiliki akses ke prompt boot loader, Anda mungkin dapat boot dengan init=/bin/static-sh
, di mana static-sh adalah symlink ke busybox
(periksa yang /bin/static-sh
ada - itu ada di sistem saya, tapi itu bukan standar Ubuntu. Bug ini menunjukkan bahwa tersedia .)
Setelah Anda memiliki shell root, Anda dapat membuat kembali /lib64
symlink. Anda mungkin perlu me-remount sistem file root sebagai baca / tulis. busybox harus memiliki alat ini bawaan, yang dapat Anda jalankan sebagai berikut:
# busybox mount -o remount,rw /
# busybox ln -s /lib /lib64
# /bin/bash
bash#
Jika bash berhasil, masalahnya harus diperbaiki.
-r
argumenrm
atau benar-benar hanya melakukan perintah yang Anda tunjukkan. Apakah penyedia hosting Anda menyediakan cara apa pun untuk mengakses gambar disk di luar mesin tertentu?