Untuk OS Linux, ada alat yang tersedia, yang dikenal sebagai chroot, yang menyediakan cara yang lebih mudah dan cepat untuk membuat sandbox aplikasi. Dengan chroot, anda boleh memasang dan menguji sebarang aplikasi tanpa menjejaskan sistem yang lain.
Artikel ini akan menerangkan cara menggunakan chroot di Debian 10 Buster, bersama dengan beberapa contoh. Untuk penjelasan, kami akan membuat lingkungan chroot untuk bash dan beberapa perintah, seperti perintah "ls," "ip," dan "pwd".
Apa itu kekacauan?
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 fail di luarnya. Oleh itu, ia mengasingkan operasi aplikasi dari sistem yang lain.
Bagaimana chroot berfungsi?
Chroot berfungsi dengan menyalin aplikasi dan semua pelaksanaan dan ketergantungannya di dalam direktori root alternatif. Kemudian menjalankan aplikasi dari dalam direktori root alternatif ini, menyebabkan aplikasi menganggapnya sebagai direktori root yang asli. Direktori root adalah direktori paling tinggi dalam hierarki, dan tidak ada aplikasi yang dapat mencapai yang lebih tinggi dari direktori ini, jadi ini adalah bagaimana chroot mengasingkan aplikasi dari seluruh sistem.
Gunakan Kes
- Menyiapkan persekitaran ujian
- Menjalankan program 32-bit pada sistem 64-bit
- Menjalankan versi program yang lebih lama pada versi OS terkini
- Pemulihan kata laluan
Sintaks
Berikut adalah sintaks asas untuk perintah chroot:
$ kekacauanIkuti langkah di bawah untuk menggunakan perintah chroot di Debian untuk mengatur persekitaran chroot.
1. Buat Direktori Akar Alternatif
Pertama, buat direktori root alternatif untuk digunakan untuk persekitaran chroot.
$ sudo mkdir ~ / new_rootPerintah di atas akan membuat baru_root direktori di bawah Rumah direktori, yang akan digunakan sebagai direktori root di lingkungan chroot.
2. Tambah Direktori Penting
Buat direktori "bin", "lib" dan "lib64" di bawah ~ / akar baru direktori:
$ sudo mkdir -p ~ / new_root / bin, lib, lib643. Salin Binari Program
Semua yang diperlukan untuk menjalankan aplikasi di persekitaran chroot perlu ada di direktori root alternatif. Dalam artikel ini, kita akan membuat lingkungan chroot untuk bash dan beberapa perintah, termasuk perintah "ls," "ip," dan "pwd". Oleh itu, kami akan menyalin binari dari / tong sampah direktori ke ganti ~ / new_root / tong sampah direktori. Untuk mencari binari perintah, gunakan perintah yang mana:
$ yang bash ls ip pwd
Seterusnya, salin binari perintah ke ~ / new_root / tong sampah direktori.
$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin
4. Salin Tanggungan Program
Kita juga perlu mengetahui pergantungan apa yang diperlukan oleh program kita. Pertama, kita perlu mencari apa itu kebergantungan, dan kemudian kita akan menyalinnya ke ~ / direktori_root / lib baru.
Menyalin Ketergantungan untuk bash
Pertama, ketahui kebergantungan untuk program bash:
$ ldd / bin / bash
Kemudian, salin kebergantungan 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 fail / lib64, salin ke fail ~ / new_root / lib64 direktori.
$ cp -v / lib64 / ld-linux-x86-64.begitu.2 ~ / new_root / lib64Copy Dependencies untuk ls Command
Pertama, ketahui kebergantungan untuk arahan ls:
$ ldd / bin / ls
Kemudian, salin kebergantungan 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 fail / lib64, salin ke fail ~ / new_root / lib64 direktori.
$ sudo cp -v / lib64 / ld-linux-x86-64.begitu.2 ~ / new_root / lib64Salin Dependencies untuk ip Command
Pertama, ketahui kebergantungan untuk arahan ip:
$ ldd / bin / ip
Kemudian, salin kebergantungan ini ke ~ / new_root / lib direktori.
$ cp -v / lib / x86_64-linuxgnu / libselinux.begitu.1, libelf.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 fail / lib64, salin ke fail ~ / new_root / lib64 direktori.
$ sudo cp -v / lib64 / ld-linux-x86-64.begitu.2 ~ / new_root / lib64Salin Dependencies untuk pwd Command
Pertama, ketahui kebergantungan untuk arahan pwd:
$ ldd / bin / pwd
Kemudian, salin kebergantungan ini ke ~ / new_root / lib direktori.
$ sudo cp -v / lib / x86_64-linux-gnu / libc.begitu.6 ~ / new_root / libUntuk fail / lib64, salin ke fail ~ / 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 arahan berikut:
$ ls -R
5. Tukar ke Direktori Akar Alternatif
Sekarang, kami akhirnya bersedia untuk beralih ke persekitaran chroot baru kami. Untuk mengubah direktori root, jalankan perintah berikut di shell dengan hak root:
$ sudo chroot ~ / new_root / bin / bashDi mana ~ / akar baru adalah direktori root alternatif kami dan / bin / bash adalah aplikasi yang telah kita gunakan untuk mengatur persekitaran chroot.
Setelah menjalankan perintah di atas, anda akan melihat bahawa prompt bash telah berubah menjadi bash-x.y yang dalam kes kita adalah bash-5.0 (di mana 5.0 adalah nombor versi bash).
Nota: anda mungkin menghadapi ralat berikut setelah menjalankan perintah chroot, seperti yang saya lakukan:
Sekiranya ralat ini berlaku, periksa bahawa anda telah menambahkan semua perpustakaan dan eksekusi yang berkaitan dengan program yang diperlukan ke direktori root yang baru.
Setelah memasuki persekitaran chroot, anda hanya dapat mengakses fail di dalamnya. Cuba jalankan perintah yang telah anda siapkan untuk lingkungan chroot anda, termasuk beberapa perintah yang ada. Anda boleh mencari perintah terbina dalam dengan menjalankan menolong arahan di cengkerang.
Anda dapat melihat kami telah mencuba perintah "ls", "pw" dan "ip", dan semuanya berjaya. Sekiranya kita menjalankan perintah selain dari tiga perintah ini dan perintah bawaan, perintah itu akan gagal, kerana kita belum menyiapkannya untuk lingkungan chroot. Seperti yang anda lihat pada tangkapan layar berikut, kami telah mencoba menjalankan perintah "sentuh", "ping", dan "jelas", dan semuanya gagal.
6. Keluar chroot
Untuk keluar dari persekitaran chroot, gunakan jalan keluar perintah.
Kesimpulannya
Dalam artikel ini, anda telah mengetahui apa itu chroot dan bagaimana ia berfungsi di Linux. Artikel ini menunjukkan kepada anda langkah demi langkah bagaimana menggunakan chroot di Debian 10 Buster untuk membuat persekitaran chroot untuk bash dan perintah lain. Sekarang, anda harus selesa menggunakan perintah chroot untuk mengubah direktori root proses dan sub-prosesnya dan mengasingkannya dari sistem yang lain.