Dalam tutorial singkat ini, kita akan mempelajari cara memulihkan atau memulihkan perintah yang dihapus di Linux menggunakan coreutils
dan busybox
.
Kami biasanya menggunakan rm
perintah untuk menghapus barang di Linux, bukan? Ya. Bagaimana jika kita menggunakan rm
ke rm
rm
? Dengan kata lain, bagaimana jika kita menghapus /bin/rm
file menggunakan rm
memerintah? Saya selalu bertanya-tanya apa yang akan terjadi jika saya benar-benar melakukan ini di mesin Linux. Jadi saya dengan cepat memutar VM Ubuntu dan menghapus /bin/rm
file dengan menjalankan perintah berikut:
$ sudo rm /bin/rm
Saya pikir saya dapat dengan mudah memulihkan rm
yang dihapus perintah dengan menginstal ulang Gnu coreutils
paket, karena rm
perintah adalah bagian dari coreutils
paket bukan?
Jadi saya mencoba menginstal ulang coreutils
paket menggunakan apt
pengelola paket seperti di bawah ini:
$ sudo apt install --reinstall coreutils
Ya ampun, aku salah! apt
manajer paket membutuhkan rm
, sehingga tidak dapat menginstal ulang coreutils
kemasan.
Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded. Need to get 1249 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://in.archive.ubuntu.com/ubuntu focal/main amd64 coreutils amd64 8.30-3ubuntu2 [1249 kB] Fetched 1249 kB in 2s (747 kB/s) dpkg: warning: 'rm' not found in PATH or not executable dpkg: error: 1 expected program not found in PATH or not executable Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin E: Sub-process /usr/bin/dpkg returned an error code (2)
Saya juga mencoba mengkompilasinya dari sumber, tetapi tidak berhasil juga, karena Makefile
menggunakan rm
. Sampai sekarang, saya tidak tahu bahwa penginstalan ulang tidak dapat dilakukan tanpa rm
perintah.
Saya pikir memulihkan perintah yang dihapus itu sepele. Namun, dalam kasus khusus ini saya tidak dapat memulihkan rm
memerintah. Akhirnya saya menemukan solusinya setelah beberapa pencarian web. Jika Anda pernah secara tidak sengaja menghapus rm
perintah (saya harap Anda tidak melakukannya), Anda dapat menggunakan salah satu dari metode berikut untuk memulihkannya. Bukan hanya rm
perintah, Anda dapat menggunakan prosedur ini untuk memulihkan hampir semua perintah inti yang dihapus yang disediakan oleh coreutils
paket.
Penafian:
Anda TIDAK HARUS MELAKUKAN INI PADA SISTEM PRODUKSI . Ini hanya untuk tujuan pendidikan!.
Pulihkan perintah yang dihapus di Linux menggunakan coreutils
Bagi yang belum tahu, Gnu coreutils
package menyediakan perintah inti penting seperti cat
, ls
, rm
, mkdir
, rmdir
, touch
, dan masih banyak lagi. Itu sudah diinstal sebelumnya dengan sebagian besar distribusi GNU/Linux.
Untuk memulihkan rm
. yang dihapus perintah, pertama buat file biner kosong dengan nama "rm"
di bawah /bin/
lokasi:
$ sudo touch /bin/rm
Jadikan itu dapat dieksekusi:
$ sudo chmod +x /bin/rm
Unduh coreutils
paket menggunakan perintah:
$ apt download coreutils
Harap perhatikan bahwa kami tidak dapat menginstal ulang coreutils
tapi unduh. Juga, kita tidak perlu menggunakan sudo
hak istimewa untuk mengunduh paket.
Buka kemasan paket yang diunduh dengan dpkg
berikut perintah:
$ sudo dpkg --unpack coreutils_8.30-3ubuntu2_amd64.deb
Perintah di atas hanya membongkar coreutils
paket, tetapi tidak akan mengonfigurasinya.
Selesai! Sekarang, Anda dapat mulai menggunakan rm
memerintah. Untuk memverifikasi apakah fungsi rm
perintah dipulihkan, cukup hapus file yang tidak diinginkan. Misalnya, saya menghapus coreutils
paket yang saya unduh sebelumnya:
$ rm coreutils_8.30-3ubuntu2_amd64.deb
Besar! Ini berhasil!
Dan, tolong jangan pernah lakukan ini pada sistem produksi!!
Pulihkan perintah yang dihapus menggunakan busybox di Linux
Kotak Sibuk adalah rangkaian perangkat lunak yang menyediakan banyak utilitas UNIX umum ke dalam satu executable kecil. Ini menyediakan pengganti untuk sebagian besar utilitas yang biasanya Anda temukan di fileutils GNU, shellutils, dll. Ini tersedia secara default di Debian dan turunannya seperti Ubuntu dan banyak distribusi Linux lainnya.
Anda dapat melihat daftar utilitas baris perintah inti yang disediakan oleh busybox
menggunakan perintah:
$ busybox --list
Contoh keluaran:
[ [[ acpid adjtimex ar arch arp arping ash awk basename bc blkdiscard blockdev brctl bunzip2 busybox bzcat bzip2 cal cat [..]
Di desktop Ubuntu 20.04 LTS saya, busybox menyediakan sekitar 263 utilitas baris perintah.
Sekarang mari kita pulihkan rm
. yang terhapus perintah dengan membuat symlink . untuk sementara untuk itu. Jalankan perintah berikut untuk symlink sementara /bin/rm
ke /bin/busybox
:
$ ln -s busybox /bin/rm
Kemudian instal ulang coreutils
paket menggunakan perintah:
$ sudo apt install --reinstall coreutils
Itu dia. Perintah di atas akan mengembalikan rm
perintah.
Seperti yang dinyatakan sebelumnya, prosedur ini bukan hanya untuk memulihkan rm
memerintah. Saya kira kita dapat memulihkan hampir semua perintah Linux menggunakan metode ini. Periksa sendiri di VM dan lihat itu berhasil! Sekali lagi, jangan lakukan ini dalam sistem produksi . Anda telah diperingatkan!
Baca juga:
- Pulihkan Izin yang Dapat Dieksekusi ke Perintah Chmod Di Linux
- Moreutils – Kumpulan Utilitas Unix yang Lebih Berguna