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
- Postavljanje testnog okruženja
- Pokretanje 32-bitnih programa na 64-bitnom sustavu
- Pokretanje starijih verzija programa na najnovijoj verziji OS-a
- Oporavak lozinke
Sintaksa
Slijedi osnovna sintaksa naredbe chroot:
$ chrootSlijedite 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_korijenGornja 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, lib643. 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 / libZa datoteke / lib64 kopirajte ih u ~ / novi_korijen / lib64 imenik.
$ cp -v / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib64Kopirajte 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 / lib64Kopirajte 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-linuxgnu / 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 / lib64Kopiraj 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 / libZa datoteke / lib64 kopirajte ih u ~ / novi_korijen / lib64 imenik.
$ sudo cp -v / lib64 / ld-linux-x86-64.tako.2 ~ / novi_korijen / lib64Da 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 / bashGdje ~ / 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.