Debian

Cara Menggunakan chroot dalam Debian 10

Cara Menggunakan chroot dalam Debian 10
Dalam persekitaran pengujian, kita sering kali memerlukan sandbox aplikasi tertentu untuk mencegahnya merosakkan atau mengintip sistem yang lain. Terdapat pelbagai alat yang tersedia untuk membuat sandbox pada program dan menghalangnya daripada mempengaruhi sistem yang lain, seperti VirtualBox, VMware, Xen, KVM, dll. Walau bagaimanapun, hanya untuk satu atau beberapa aplikasi, kotak pasir keseluruhan OS nampaknya tidak praktikal.

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

Sintaks

Berikut adalah sintaks asas untuk perintah chroot:

$ kekacauan perintah

Ikuti 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_root

Perintah 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, lib64

3. 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 / lib

Untuk fail / lib64, salin ke fail ~ / new_root / lib64 direktori.

$ cp -v / lib64 / ld-linux-x86-64.begitu.2 ~ / new_root / lib64

Copy 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 / lib64

Salin 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-linux
gnu / 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 / lib64

Salin 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 / lib

Untuk fail / lib64, salin ke fail ~ / new_root / lib64 direktori.

$ sudo cp -v / lib64 / ld-linux-x86-64.begitu.2 ~ / new_root / lib64

Untuk 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 / bash

Di 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.

Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...
Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...