Debian

Kaip naudoti „chroot“ „Debian 10“

Kaip naudoti „chroot“ „Debian 10“
Testavimo aplinkoje dažnai turime tam tikras programas perkelti į smėlio dėžę, kad jos nepažeistų ar nenukentėtų likusios sistemos. Yra įvairių įrankių, skirtų programai sudaryti smėlio dėžę ir neleisti jai paveikti likusios sistemos, pvz., „VirtualBox“, „VMware“, „Xen“, KVM ir kt. Tačiau atrodo, kad tik vienai ar kelioms programoms visos operacinės sistemos „sandbox“ rinkimas nėra praktiškas.

„Linux OS“ yra įrankis, žinomas kaip „chroot“, kuris suteikia paprastesnį ir greitesnį programos „sandboxing“ būdą. Naudodami „chroot“, galite įdiegti ir išbandyti bet kurią programą nepažeisdami likusios sistemos dalies.

Šiame straipsnyje bus paaiškinta, kaip naudoti „chroot“ „Debian 10 Buster“, kartu su keliais pavyzdžiais. Norėdami paaiškinti, sukursime chroot aplinką bash ir kai kurioms komandoms, tokioms kaip „ls“, „ip“ ir „pwd“ komandos.

Kas yra chroot?

„Chroot“ įrankis yra „Linux“ komanda, pakeičianti programos šakninį katalogą į kitą katalogą. Procesai, vykdomi šiame naujame šakniniame kataloge, negali pasiekti failų, esančių už jo ribų. Taigi, jis izoliuoja programų veikimą nuo likusios sistemos.

Kaip veikia chroot?

„Chroot“ veikia kopijuodama programą ir visus jos vykdomuosius bei priklausomybes pakaitiniame šakniniame kataloge. Tada ji paleidžia programą iš šio pakaitinio šakninio katalogo, todėl programa ją laiko pradiniu šakniniu katalogu. Šakninis katalogas yra aukščiausias hierarchijos katalogas, ir nė viena programa negali pasiekti aukščiau už šį katalogą, todėl „chroot“ izoliuoja programą nuo likusios sistemos.

Naudojimo atvejai

Sintaksė

Toliau pateikiama pagrindinė chroot komandos sintaksė:

$ chroot komandą

Jei norite nustatyti chroot aplinką, atlikite toliau nurodytus veiksmus naudodami „chian“ komandą „Debian“.

1. Sukurkite alternatyvų šakninį katalogą

Pirmiausia sukurkite alternatyvų šakninį katalogą, kuris bus naudojamas chroot aplinkai.

$ sudo mkdir ~ / new_root

Pirmiau nurodyta komanda sukurs new_root katalogą Namai katalogas, kuris bus naudojamas kaip šakninis katalogas chroot aplinkoje.

2. Pridėti pagrindinius katalogus

Sukurkite aplankus „bin“, „lib“ ir „lib64“ ~ / new_root katalogas:

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

3. Kopijuoti programos dvejetainius failus

Viskas, ko reikia norint paleisti programą „chroot“ aplinkoje, turi būti pakaitiniame šakniniame kataloge. Šiame straipsnyje sukursime chroot aplinką bash ir kai kurioms komandoms, įskaitant komandas „ls“, „ip“ ir „pwd“. Todėl nukopijuosime dvejetainius failus iš / bin katalogą į pakaitinį ~ / new_root / bin kataloge. Norėdami rasti komandų dvejetainius failus, naudokite kurią komandą:

$ kuri bash ls ip pwd

Tada nukopijuokite komandų dvejetainius failus į ~ / new_root / bin kataloge.

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

4. Kopijuoti programos priklausomybes

Taip pat turėsime išsiaiškinti, kokių priklausomybių reikia mūsų programai. Pirmiausia turėsime sužinoti, kokios yra tos priklausomybės, ir tada jas nukopijuosime į ~ / new_root / lib katalogas.

Nukopijuojamos „bash“ priklausomybės

Pirmiausia išsiaiškinkite „bash“ programos priklausomybę:

$ ldd / bin / bash

Tada nukopijuokite šias priklausomybes į ~ / new_root / lib kataloge.

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

Failams / lib64 nukopijuokite juos į ~ / new_root / lib64 kataloge.

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

Kopijuoti ls komandos priklausomybes

Pirmiausia išsiaiškinkite komandos ls priklausomybę:

$ ldd / bin / ls

Tada nukopijuokite šias priklausomybes į ~ / new_root / lib kataloge.

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

Failams / lib64 nukopijuokite juos į ~ / new_root / lib64 kataloge.

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

Kopijuoti „IP“ komandos priklausomybes

Pirmiausia išsiaiškinkite „ip“ komandos priklausomybę:

$ ldd / bin / ip

Tada nukopijuokite šias priklausomybes į ~ / new_root / lib kataloge.

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

Failams / lib64 nukopijuokite juos į ~ / new_root / lib64 kataloge.

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

Kopijuoti „pwd“ komandos priklausomybes

Pirmiausia sužinokite komandos „pwd“ priklausomybes:

$ ldd / bin / pwd

Tada nukopijuokite šias priklausomybes į ~ / new_root / lib kataloge.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.taip.6 ~ / new_root / lib

Failams / lib64 nukopijuokite juos į ~ / new_root / lib64 kataloge.

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

Norėdami peržiūrėti visus katalogus alternatyviame šakniniame kataloge, naudokite šią komandą:

$ ls -R

5. Perjunkite į „Alternate Root Directory“

Dabar pagaliau esame pasirengę pereiti prie naujos chroot aplinkos. Norėdami pakeisti šakninį katalogą, vykdykite šią komandą apvalkale su root teisėmis:

$ sudo chroot ~ / new_root / bin / bash

Kur ~ / new_root yra mūsų pakaitinis šakninis katalogas ir / bin / bash yra programa, kurią naudojome kurdami chroot aplinką.

Paleidus aukščiau nurodytą komandą, pamatysite, kad „bash“ eilutė pasikeitė į bash-x.y kas mūsų atveju yra bash-5.0 (kur 5.0 yra „bash“ versijos numeris).

Pastaba: paleidę chroot komandą, kaip aš padariau, galite susidurti su šia klaida:

Jei įvyksta ši klaida, patikrinkite, ar pridėjote visas bibliotekas ir vykdomuosius failus, susijusius su reikiama programa, į naują šakninį katalogą.

Įėję į „chroot“ aplinką, galėsite pasiekti tik joje esantį failą. Pabandykite paleisti chroot aplinkai nustatytas komandas, įskaitant kai kurias įmontuotas komandas. Įdiegtas komandas galite rasti paleidę pagalba komandą kiaute.

Matote, kad išbandėme komandas „ls“, „pw“ ir „ip“, ir jiems visiems pavyko. Jei vykdysime bet kurią komandą, išskyrus šias tris komandas ir įmontuotas komandas, komanda nepavyks, nes mes jos nenustatėme chroot aplinkai. Kaip matote kitoje ekrano kopijoje, mes bandėme paleisti komandas „touch“, „ping“ ir „clear“ ir visos jos nepavyko.

6. Išeikite iš chroot

Norėdami išeiti iš chroot aplinkos, naudokite išėjimas komandą.

Išvada

Šiame straipsnyje jūs sužinojote, kas yra „chroot“ ir kaip jis veikia „Linux“. Šis straipsnis jums žingsnis po žingsnio parodė, kaip naudoti „chroot“ „Debian 10 Buster“, norint sukurti chroot aplinką „bash“ ir kitoms komandoms. Dabar jums turėtų būti patogu naudoti chroot komandą, kad pakeistumėte proceso šakninį katalogą ir jo antrinius procesus bei izoliuotumėte juos nuo likusios sistemos.

Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...
„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....
„AppyMouse“ ekrano „Trackpad“ ir pelės žymeklis, skirtas „Windows“ tabletėms
Planšetinių kompiuterių vartotojai dažnai praleidžia pelės žymeklį, ypač kai įprasta naudoti nešiojamus kompiuterius. Jutiklinio ekrano išmanieji tele...