Untuk OS Linux, ada alat yang tersedia, yang dikenal sebagai chroot, yang menyediakan cara sandboxing aplikasi yang lebih mudah dan cepat. Dengan chroot, Anda dapat menginstal dan menguji aplikasi apa pun tanpa memengaruhi sistem lainnya.
Artikel ini akan menjelaskan cara menggunakan chroot di Debian 10 Buster, beserta beberapa contohnya. Untuk penjelasannya, kita akan membuat lingkungan chroot untuk bash dan beberapa perintah, seperti perintah “ls,” “ip,” dan “pwd”.
Apa itu chroot??
Alat chroot adalah perintah di Linux yang mengubah direktori root aplikasi ke direktori lain. Proses yang berjalan di direktori root baru ini tidak dapat mengakses file di luarnya. Oleh karena itu, ia mengisolasi operasi aplikasi dari sistem lainnya.
Bagaimana cara kerja chroot??
Chroot bekerja dengan menyalin aplikasi dan semua executable dan dependensinya di dalam direktori root alternatif. Kemudian menjalankan aplikasi dari dalam direktori root alternatif ini, menyebabkan aplikasi menganggapnya sebagai direktori root asli. Direktori root adalah direktori paling atas dalam hierarki, dan tidak ada aplikasi yang dapat mencapai lebih tinggi dari direktori ini, jadi beginilah cara chroot mengisolasi aplikasi dari sistem lainnya.
Gunakan Kasus
- Menyiapkan lingkungan pengujian
- Menjalankan program 32-bit pada sistem 64-bit
- Menjalankan versi program yang lebih lama pada versi OS terbaru
- Pemulihan kata sandi
Sintaksis
Berikut ini adalah sintaks dasar untuk perintah chroot:
$ chrootIkuti langkah-langkah di bawah ini untuk menggunakan perintah chroot di Debian untuk mengatur lingkungan chroot.
1. Buat Direktori Root Alternatif
Pertama, buat direktori root alternatif yang akan digunakan untuk lingkungan chroot.
$ sudo mkdir ~/new_rootPerintah di atas akan membuat new_root direktori di bawah Rumah direktori, yang akan digunakan sebagai direktori root di lingkungan chroot.
2. Tambahkan Direktori Penting
Buat direktori "bin," "lib," dan "lib64" di bawah ~/new_root direktori:
$ sudo mkdir -p ~/new_root/bin,lib,lib643. Salin Program Biner
Semua yang diperlukan untuk menjalankan aplikasi di lingkungan chroot harus berada di direktori root alternatif. Pada artikel ini, kita akan membuat lingkungan chroot untuk bash dan beberapa perintah, termasuk perintah “ls,” “ip,” dan “pwd”. Oleh karena itu, kami akan menyalin binari dari /tempat sampah direktori ke alternatif ~/new_root/bin direktori. Untuk menemukan binari perintah, gunakan perintah which:
$ yang bash ls ip pwd
Selanjutnya, salin binari perintah ke ~/new_root/bin direktori.
$ sudo cp -v /bin/bash,ls,ip,pwd ~/new_root/bin
4. Salin Ketergantungan Program
Kami juga perlu mencari tahu dependensi apa yang dibutuhkan program kami our. Pertama, kita perlu menemukan dependensi itu, dan kemudian kita akan menyalinnya ke ~/new_root/lib direktori.
Menyalin Ketergantungan untuk bash
Pertama, cari tahu dependensi untuk program bash:
$ldd /bin/bash
Kemudian, salin dependensi ini ke ~/new_root/lib direktori.
$ cp -v /lib/x86_64-linux-gnu/libtinfo.begitu.6, libdl.begitu.2, libc.begitu.6 ~/new_root/libUntuk file /lib64, salin ke ~/new_root/lib64 direktori.
$cp -v /lib64/ld-linux-x86-64.begitu.2 ~/new_root/lib64Salin Ketergantungan untuk Perintah ls
Pertama, cari tahu dependensi untuk perintah ls:
$ldd /bin/ls
Kemudian, salin dependensi ini ke ~/new_root/lib direktori.
$ sudo cp -v /lib/x86_64-linux-gnu/libselinux.begitu.1, libc.begitu.6, libpcre.begitu.3,libdl.begitu.2, libpthread.begitu.0 /lib64/ld-linux-x86-64.begitu.2 ~/new_root/lib
Untuk file /lib64, salin ke ~/new_root/lib64 direktori.
$ sudo cp -v /lib64/ld-linux-x86-64.begitu.2 ~/new_root/lib64Salin Ketergantungan untuk Perintah ip
Pertama, cari tahu dependensi untuk perintah ip:
$ldd /bin/ip
Kemudian, salin dependensi ini ke ~/new_root/lib direktori.
$cp -v /lib/x86_64-linuxgnu/libselinux.begitu.1, pencemaran nama baik.begitu.1, libmnl.begitu.0, libcap.begitu.2, libdl.begitu.2, libc.begitu.6,
libpcre.begitu.3, libz.begitu.1, libpthread.begitu.0 ~/new_root/lib
Untuk file /lib64, salin ke ~/new_root/lib64 direktori.
$ sudo cp -v /lib64/ld-linux-x86-64.begitu.2 ~/new_root/lib64Salin Ketergantungan untuk Perintah pwd
Pertama, cari tahu dependensi untuk perintah pwd:
$ldd /bin/pwd
Kemudian, salin dependensi ini ke ~/new_root/lib direktori.
$ sudo cp -v /lib/x86_64-linux-gnu/libc.begitu.6 ~/new_root/libUntuk file /lib64, salin ke ~/new_root/lib64 direktori.
$ sudo cp -v /lib64/ld-linux-x86-64.begitu.2 ~/new_root/lib64Untuk melihat semua direktori di direktori root alternatif, gunakan perintah berikut:
$ ls -R
5. Beralih ke Direktori Root Alternatif
Sekarang, kami akhirnya siap untuk beralih ke lingkungan chroot baru kami. Untuk mengubah direktori root, jalankan perintah berikut di shell dengan hak akses root:
$ sudo chroot ~/new_root /bin/bashDimana ~/new_root adalah direktori root alternatif kami dan /bin/bash adalah aplikasi yang kami gunakan untuk mengatur lingkungan chroot.
Setelah menjalankan perintah di atas, Anda akan melihat bahwa bash prompt telah berubah menjadi bash-x.kamu yang dalam kasus kami adalah bash-5.0 (di mana 5.0 adalah nomor versi bash).
catatan: Anda mungkin mengalami kesalahan berikut setelah menjalankan perintah chroot, seperti yang saya lakukan:
Jika kesalahan ini terjadi, periksa apakah Anda telah menambahkan semua pustaka dan executable yang terkait dengan program yang diperlukan ke direktori root baru.
Setelah memasuki lingkungan chroot, Anda hanya dapat mengakses file di dalamnya. Coba jalankan perintah yang telah Anda atur untuk lingkungan chroot Anda, termasuk beberapa perintah bawaan. Anda dapat menemukan perintah bawaan dengan menjalankan Tolong perintah di shell.
Anda dapat melihat kami telah mencoba perintah "ls," "pw," dan "ip", dan semuanya berhasil. Jika kita menjalankan perintah apa pun selain ketiga perintah ini dan perintah bawaan, perintah tersebut akan gagal, karena kita belum mengaturnya untuk lingkungan chroot. Seperti yang Anda lihat di tangkapan layar berikut, kami telah mencoba menjalankan perintah "sentuh", "ping", dan "hapus", dan semuanya gagal.
6. Keluar dari chroot
Untuk keluar dari lingkungan chroot, gunakan keluar perintah.
Kesimpulan
Pada artikel ini, Anda telah mempelajari apa itu chroot dan cara kerjanya di Linux. Artikel ini menunjukkan kepada Anda langkah demi langkah cara menggunakan chroot di Debian 10 Buster untuk membuat lingkungan chroot untuk bash dan perintah lainnya. Sekarang, Anda harus nyaman menggunakan perintah chroot untuk mengubah direktori root dari suatu proses dan sub-prosesnya dan mengisolasinya dari sistem lainnya.