Debian

Kuinka käyttää chrootia Debian 10 ssä

Kuinka käyttää chrootia Debian 10 ssä
Testausympäristössä joudumme usein hiekkalaatikkoon tiettyjä sovelluksia estämään niitä vahingoittamasta tai tuhoamasta muuta järjestelmää. On olemassa erilaisia ​​työkaluja ohjelman hiekkalaatikkoon tekemiseen ja sen estämiseen vaikuttamasta muuhun järjestelmään, kuten VirtualBox, VMware, Xen, KVM jne. Koko käyttöjärjestelmän hiekkalaatikko ei kuitenkaan vaikuta käytännölliseltä vain yhdelle tai muutamalle sovellukselle.

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

Syntaksi

Seuraava on chroot-komennon perussyntaksi:

$ chroot komento

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

Yllä 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, lib64

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

Kopioi / lib64-tiedostot tiedostoihin ~ / new_root / lib64 hakemistoon.

$ cp -v / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib64

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

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

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

Kopioi / lib64-tiedostot tiedostoihin ~ / new_root / lib64 hakemistoon.

$ sudo cp -v / lib64 / ld-linux-x86-64.niin.2 ~ / uusi_juuri / lib64

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

Missä ~ / 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ä.

Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 parasta arcade-peliä Linuxille
Nykyään tietokoneet ovat vakavia koneita, joita käytetään pelaamiseen. Jos et pääse uusiin korkeisiin pisteisiin, tiedät mitä tarkoitan. Tässä viestis...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...