Linux-käyttöjärjestelmää varten on käytettävissä työkalu, joka tunnetaan nimellä chroot, joka tarjoaa helpomman ja nopeamman tavan hiekkalaatikko sovellukseen. Chrootin avulla voit asentaa ja testata minkä tahansa sovelluksen vaikuttamatta muuhun järjestelmään.
Tässä artikkelissa kerrotaan, kuinka chrootia käytetään Debian 10 Busterissa, sekä muutama esimerkki. Selitykseksi luomme chroot-ympäristön bashille ja joillekin komennoille, kuten “ls”, “ip” ja “pwd” -komennot.
Mikä on chroot?
Chroot-työkalu on Linuxin komento, joka muuttaa sovelluksen juurihakemiston toiseen hakemistoon. Tässä uudessa juurihakemistossa käynnissä olevat prosessit eivät voi käyttää sen ulkopuolella olevia tiedostoja. Siksi se eristää sovellusten toiminnot muusta järjestelmästä.
Kuinka chroot toimii?
Chroot toimii kopioimalla sovellus ja kaikki sen suoritettavat tiedostot ja riippuvuudet vaihtoehtoisen juurihakemiston sisällä. Sitten se suorittaa sovelluksen tästä vaihtoehtoisesta juurihakemistosta, jolloin sovellus pitää sitä alkuperäisenä juurihakemistona. Juurihakemisto on hierarkian ylimpänä oleva hakemisto, eikä mikään sovellus pääse tätä hakemistoa korkeammalle, joten chroot eristää sovelluksen muusta järjestelmästä.
Käytä koteloita
- Testiympäristön luominen
- Suorita 32-bittiset ohjelmat 64-bittisessä järjestelmässä
- Aja vanhemmat ohjelmaversiot uusimmalla käyttöjärjestelmäversiolla
- Salasanan palautus
Syntaksi
Seuraava on chroot-komennon perussyntaksi:
$ chrootNoudata alla olevia vaiheita käyttääksesi chroot-komentoa Debianissa chroot-ympäristön määrittämiseen.
1. Luo vaihtoehtoinen juurihakemisto
Luo ensin vaihtoehtoinen juurihakemisto, jota käytetään chroot-ympäristössä.
$ sudo mkdir ~ / new_rootYllä oleva komento luo uusi_juuri hakemiston alla Koti hakemistoa, jota käytetään juurihakemistona chroot-ympäristössä.
2. Lisää tärkeät hakemistot
Luo hakemistot "bin", "lib" ja "lib64" ~ / uusi_juuri hakemisto:
$ sudo mkdir -p ~ / new_root / bin, lib, lib643. Kopioi ohjelman binäärit
Kaiken, mitä tarvitaan sovelluksen suorittamiseen chroot-ympäristössä, on oltava vaihtoehtoisessa juurihakemistossa. Tässä artikkelissa luomme chroot-ympäristön bashille ja joillekin komennoille, mukaan lukien “ls”, “ip” ja “pwd” -komennot. Siksi kopioimme binäärit / bin hakemiston vaihtoehtoiseen ~ / new_root / bin hakemistoon. Etsi komentojen binäärit käyttämällä mitä komentoa:
$ mikä bash ls ip pwd
Kopioi sitten komentojen binäärit ~ / new_root / bin hakemistoon.
$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin
4. Kopioi ohjelman riippuvuudet
Meidän on myös selvitettävä, mitä riippuvuuksia ohjelmamme tarvitsee. Ensinnäkin meidän on löydettävä, mitä nämä riippuvuudet ovat, ja sitten kopioimme ne ~ / new_root / lib hakemisto.
Kopioidaan riippuvuudet bashille
Selvitä ensin bash-ohjelman riippuvuudet:
$ ldd / bin / bash
Kopioi sitten nämä riippuvuudet ~ / new_root / lib hakemistoon.
$ cp -v / lib / x86_64-linux-gnu / libtinfo.niin.6, libdl.niin.2, libc.niin.6 ~ / uusi_juuri / libKopioi / lib64-tiedostot tiedostoihin ~ / new_root / lib64 hakemistoon.
$ cp -v / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib64Kopioi ls-komennon riippuvuudet
Selvitä ensin ls-komennon riippuvuudet:
$ ldd / bin / ls
Kopioi sitten nämä riippuvuudet ~ / new_root / lib hakemistoon.
$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.niin.1, libc.niin.6, libpcre.niin.3,libdl.niin.2, libpthread.niin.0 / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib
Kopioi / lib64-tiedostot tiedostoihin ~ / new_root / lib64 hakemistoon.
$ sudo cp -v / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib64Kopioi ip-komennon riippuvuudet
Selvitä ensin ip-komennon riippuvuudet:
$ ldd / bin / ip
Kopioi sitten nämä riippuvuudet ~ / new_root / lib hakemistoon.
$ cp -v / lib / x86_64-linuxgnu / libselinux.niin.1, libelf.niin.1, libmnl.niin.0, libcap.niin.2, libdl.niin.2, libc.niin.6,
libpcre.niin.3, libz.niin.1, libpthread.niin.0 ~ / uusi_juuri / lib
Kopioi / lib64-tiedostot tiedostoihin ~ / new_root / lib64 hakemistoon.
$ sudo cp -v / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib64Kopioi pwd-komennon riippuvuudet
Selvitä ensin pwd-komennon riippuvuudet:
$ ldd / bin / pwd
Kopioi sitten nämä riippuvuudet ~ / new_root / lib hakemistoon.
$ sudo cp -v / lib / x86_64-linux-gnu / libc.niin.6 ~ / uusi_juuri / libKopioi / lib64-tiedostot tiedostoihin ~ / new_root / lib64 hakemistoon.
$ sudo cp -v / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib64Voit tarkastella kaikkia hakemistoja vaihtoehtoisessa juurihakemistossa seuraavalla komennolla:
$ ls -R
5. Vaihda vaihtoehtoiseen juurihakemistoon
Nyt olemme vihdoin valmiita siirtymään uuteen chroot-ympäristöön. Jos haluat muuttaa juurihakemistoa, suorita seuraava komento kuoressa juurioikeuksilla:
$ sudo chroot ~ / new_root / bin / bashMissä ~ / uusi_juuri on vaihtoehtoinen juurihakemisto ja / bin / bash on sovellus, jota olemme käyttäneet chroot-ympäristön luomiseen.
Yllä olevan komennon suorittamisen jälkeen näet, että bash-kehote on muuttunut bash-x.y mikä meidän tapauksessamme on bash-5.0 (missä 5.0 on bash-versionumero).
merkintä: saatat kohdata seuraavan virheen chroot-komennon suorittamisen jälkeen, kuten minä:
Jos tämä virhe ilmenee, tarkista, että olet lisännyt kaikki tarvittavaan ohjelmaan liittyvät kirjastot ja suoritettavat tiedostot uuteen juurihakemistoon.
Kun olet siirtynyt chroot-ympäristöön, pääset käsiksi vain siinä olevaan tiedostoon. Yritä suorittaa komentoja, jotka olet määrittänyt chroot-ympäristölle, mukaan lukien joitain sisäänrakennettuja komentoja. Löydät sisäänrakennetut komennot suorittamalla auta komento kuoressa.
Voit nähdä, että olemme kokeilleet “ls”, “pw” ja “ip” -komentoja, ja ne kaikki onnistuivat. Jos suoritamme muuta komentoa kuin nämä kolme komentoa ja sisäänrakennettuja komentoja, komento epäonnistuu, koska emme ole asettaneet sitä chroot-ympäristöön. Kuten voit nähdä seuraavasta kuvakaappauksesta, olemme yrittäneet suorittaa kosketus-, ping- ja tyhjennuskomennot, ja ne kaikki epäonnistuivat.
6. Poistu chrootista
Voit poistua chroot-ympäristöstä käyttämällä poistua komento.
Johtopäätös
Tässä artikkelissa olet oppinut, mikä chroot on ja miten se toimii Linuxissa. Tämä artikkeli kertoi sinulle kuinka vaihe vaiheelta miten chrootia käytetään Debian 10 Busterissa chroot-ympäristön luomiseksi bashille ja muille komennoille. Nyt sinun pitäisi olla mukava chroot-komennolla vaihtaa prosessin juurihakemisto ja sen aliprosessit ja eristää ne muusta järjestelmästä.