Debian

Kako koristiti chroot u Debianu 10

Kako koristiti chroot u Debianu 10
U testnom okruženju često moramo izdvojiti određene programe kako bismo ih spriječili da oštete ili pregledaju ostatak sustava. Dostupni su različiti alati za testiranje programa u zaštićenom okruženju i sprečavanje utjecaja na ostatak sustava, poput VirtualBox, VMware, Xen, KVM itd. Međutim, samo za jednu ili nekoliko aplikacija, testiranje u cjelini OS-a ne čini se praktičnim.

Za Linux OS dostupan je alat, poznat kao chroot, koji pruža lakši i brži način izdvajanja aplikacije u sigurnosne okvire. Uz chroot možete instalirati i testirati bilo koju aplikaciju bez utjecaja na ostatak sustava.

Ovaj će članak objasniti kako koristiti chroot u Debian 10 Busteru, zajedno s nekoliko primjera. Za objašnjenje ćemo stvoriti chroot okruženje za bash i neke naredbe, poput naredbi "ls", "ip" i "pwd".

Što je chroot?

Alat chroot naredba je u Linuxu koja mijenja korijenski direktorij aplikacije u drugi direktorij. Procesi koji se izvode u ovom novom korijenskom direktoriju ne mogu pristupiti datotekama izvan njega. Stoga izolira rad aplikacija od ostatka sustava.

Kako djeluje chroot?

Chroot djeluje kopiranjem aplikacije i svih njezinih izvršnih datoteka i ovisnosti unutar zamjenskog korijenskog direktorija. Zatim pokreće aplikaciju iz ovog zamjenskog korijenskog direktorija, što uzrokuje da je aplikacija smatra originalnom korijenskom mapom. Korijenski direktorij je najveći direktorij u hijerarhiji i nijedna aplikacija ne može doseći više od ovog direktorija, pa tako Chroot izolira aplikaciju od ostatka sustava.

Koristite slučajeve

Sintaksa

Slijedi osnovna sintaksa naredbe chroot:

$ chroot naredba

Slijedite korake u nastavku da biste pomoću naredbe chroot u Debianu postavili chroot okruženje.

1. Stvorite zamjenski korijenski direktorij

Prvo stvorite zamjenski korijenski direktorij koji će se koristiti za chroot okruženje.

$ sudo mkdir ~ / novi_korijen

Gornja naredba će stvoriti novi_korijen imenik pod Dom direktorij, koji će se koristiti kao korijenski direktorij u chroot okruženju.

2. Dodajte osnovne direktorije

Stvorite direktorije "bin", "lib" i "lib64" ispod ~ / novi_korijen imenik:

$ sudo mkdir -p ~ / new_root / bin, lib, lib64

3. Kopirajte binarne programe

Sve što je potrebno za pokretanje aplikacije u chroot okruženju mora biti u zamjenskom korijenskom direktoriju. U ovom ćemo članku stvoriti chroot okruženje za bash i neke naredbe, uključujući naredbe "ls", "ip" i "pwd". Stoga ćemo kopirati binarne datoteke s / kanta za smeće direktorij na zamjenski ~ / novi_korijen / spremnik imenik. Da biste pronašli binarne datoteke naredbi, upotrijebite naredbu:

$ koji bash je ip pwd

Zatim kopirajte binarne datoteke naredbi u ~ / novi_korijen / spremnik imenik.

$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin

4. Kopirajte programske ovisnosti

Također ćemo morati otkriti koje ovisnosti treba naš program. Prvo ćemo morati pronaći koje su to ovisnosti, a zatim ćemo ih kopirati u ~ / new_root / lib direktorij.

Kopiranje ovisnosti za bash

Prvo saznajte ovisnosti za bash program:

$ ldd / bin / bash

Zatim kopirajte ove ovisnosti u ~ / novi_korijen / lib imenik.

$ cp -v / lib / x86_64-linux-gnu / libtinfo.tako.6, libdl.tako.2, libc.tako.6 ~ / novi_korijen / lib

Za datoteke / lib64 kopirajte ih u ~ / novi_korijen / lib64 imenik.

$ cp -v / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib64

Kopirajte ovisnosti za naredbu ls

Prvo saznajte ovisnosti za naredbu ls:

$ ldd / kanta / ls

Zatim kopirajte ove ovisnosti u ~ / novi_korijen / lib imenik.

$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.tako.1, libc.tako.6, libpcre.tako.3,
libdl.tako.2, libpthread.tako.0 / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib

Za datoteke / lib64 kopirajte ih u ~ / novi_korijen / lib64 imenik.

$ sudo cp -v / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib64

Kopirajte ovisnosti za ip naredbu

Prvo saznajte ovisnosti za naredbu ip:

$ ldd / bin / ip

Zatim kopirajte ove ovisnosti u ~ / novi_korijen / lib imenik.

$ cp -v / lib / x86_64-linux
gnu / libselinux.tako.1, kleveta.tako.1, libmnl.tako.0, libcap.tako.2, libdl.tako.2, libc.tako.6,
libpcre.tako.3, libz.tako.1, libpthread.tako.0 ~ / novi_korijen / lib

Za datoteke / lib64 kopirajte ih u ~ / novi_korijen / lib64 imenik.

$ sudo cp -v / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib64

Kopiraj ovisnosti za naredbu pwd

Prvo saznajte ovisnosti za naredbu pwd:

$ ldd / kanta / pwd

Zatim kopirajte ove ovisnosti u ~ / novi_korijen / lib imenik.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.tako.6 ~ / novi_korijen / lib

Za datoteke / lib64 kopirajte ih u ~ / novi_korijen / lib64 imenik.

$ sudo cp -v / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib64

Da biste pregledali sve direktorije u zamjenskom korijenskom direktoriju, upotrijebite sljedeću naredbu:

$ ls -R

5. Prebacite se na zamjenski korijenski direktorij

Sada smo napokon spremni za prelazak na naše novo chroot okruženje. Da biste promijenili korijenski direktorij, pokrenite sljedeću naredbu u ljusci s root privilegijama:

$ sudo chroot ~ / new_root / bin / bash

Gdje ~ / novi_korijen je naš zamjenski korijenski direktorij i / bin / bash je aplikacija koju smo koristili za postavljanje chroot okruženja.

Nakon pokretanja gornje naredbe, vidjet ćete da se bash promjer promijenio u bash-x.g što je u našem slučaju bash-5.0 (gdje 5.0 je broj bash verzije).

Bilješka: nakon pokretanja naredbe chroot možete naići na sljedeću pogrešku, kao što sam to učinio:

Ako se dogodi ova pogreška, provjerite jeste li u novi korijenski direktorij dodali sve knjižnice i izvršne datoteke povezane sa potrebnim programom.

Nakon ulaska u chroot okruženje, moći ćete pristupiti datoteci samo u njemu. Pokušajte pokrenuti naredbe koje ste postavili za svoje chroot okruženje, uključujući neke ugrađene naredbe. Ugrađene naredbe možete pronaći pokretanjem Pomozite naredba u ljusci.

Možete vidjeti da smo isprobali naredbe „ls“, „pw“ i „ip“ i sve su uspjele. Ako pokrenemo bilo koju naredbu osim ove tri naredbe i ugrađenih naredbi, naredba neće uspjeti jer je nismo postavili za chroot okruženje. Kao što možete vidjeti na sljedećem snimku zaslona, ​​pokušali smo pokrenuti naredbe "touch", "ping" i "clear", a sve nisu uspjele.

6. Izlaz iz chroota

Da biste izašli iz chroot okruženja, upotrijebite Izlaz naredba.

Zaključak

U ovom ste članku naučili što je chroot i kako to radi u Linuxu. Ovaj vam je članak korak po korak pokazao kako koristiti chroot u Debian 10 Busteru za stvaranje chroot okruženja za bash i druge naredbe. Sada vam treba biti ugodno koristiti naredbu chroot za promjenu korijenskog direktorija procesa i njegovih potprocesa i izolaciju od ostatka sustava.

Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...