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