Debian

Hvordan bruke chroot i Debian 10

Hvordan bruke chroot i Debian 10
I et testmiljø må vi ofte sandkasse visse applikasjoner for å forhindre at de ødelegger eller snyder resten av systemet. Det er forskjellige verktøy tilgjengelig for å sandkasse et program og forhindre at det påvirker resten av systemet, som VirtualBox, VMware, Xen, KVM, etc. Imidlertid, for bare en enkelt eller noen få applikasjoner, virker ikke sandboxing et helt operativsystem praktisk.

For Linux OS er det et verktøy tilgjengelig, kjent som chroot, som gir en enklere og raskere måte å sandkasse et program på. Med chroot kan du installere og teste ethvert program uten å påvirke resten av systemet.

Denne artikkelen vil forklare hvordan du bruker chroot i Debian 10 Buster, sammen med noen få eksempler. For forklaring vil vi lage et chroot-miljø for bash og noen av kommandoene, for eksempel kommandoene "ls", "ip" og "pwd".

Hva er chroot?

Chroot-verktøyet er en kommando i Linux som endrer rotkatalogen til et program til en annen katalog. Prosesser som kjører i denne nye rotkatalogen, får ikke tilgang til filene utenfor den. Derfor isolerer den driften av applikasjoner fra resten av systemet.

Hvordan fungerer chroot?

Chroot fungerer ved å kopiere applikasjonen og alle dens kjørbare filer og avhengigheter i den alternative rotkatalogen. Den kjører deretter applikasjonen fra denne alternative rotkatalogen, og får applikasjonen til å betrakte den som den opprinnelige rotkatalogen. Rotkatalogen er den øverste katalogen i hierarkiet, og ingen applikasjoner kan nå høyere enn denne katalogen, så dette er hvordan chroot isolerer applikasjonen fra resten av systemet.

Bruk tilfeller

Syntaks

Følgende er den grunnleggende syntaksen for chroot-kommandoen:

$ chroot kommando

Følg trinnene nedenfor for å bruke chroot-kommandoen i Debian for å sette opp et chroot-miljø.

1. Opprett en alternativ rotkatalog

Opprett først en alternativ rotkatalog som skal brukes til chroot-miljøet.

$ sudo mkdir ~ / new_root

Ovennevnte kommando vil opprette new_root katalog under Hjem katalog, som vil bli brukt som rotkatalog i chroot-miljøet.

2. Legg til viktige kataloger

Opprett katalogene "bin", "lib" og "lib64" under ~ / new_root katalog:

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

3. Kopier programbinarier

Alt som kreves for å kjøre et program i chroot-miljøet, må være i den alternative rotkatalogen. I denne artikkelen vil vi lage et chroot-miljø for bash og noen kommandoer, inkludert kommandoene "ls", "ip" og "pwd". Derfor vil vi kopiere binærfiler fra / søppel katalog til det alternative ~ / new_root / bin katalog. For å finne binærfiler for kommandoene, bruk kommandoen som:

$ som bash ls ip pwd

Deretter kopierer du binærfiler til kommandoene til ~ / new_root / bin katalog.

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

4. Kopier programavhengigheter

Vi må også finne ut hvilke avhengigheter programmet vårt trenger. Først må vi finne ut hva disse avhengighetene er, og så vil vi kopiere dem til ~ / new_root / lib katalog.

Kopiere avhengigheter for bash

Finn først ut avhengighetene for bash-programmet:

$ ldd / bin / bash

Kopier deretter disse avhengighetene til ~ / new_root / lib katalog.

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

For / lib64-filene, kopier dem til ~ / new_root / lib64 katalog.

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

Kopier avhengigheter for kommandoen

Finn først ut avhengighetene for ls-kommandoen:

$ ldd / bin / ls

Kopier deretter disse avhengighetene til ~ / new_root / lib katalog.

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

For / lib64-filene, kopier dem til ~ / new_root / lib64 katalog.

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

Kopier avhengigheter for ip Command

Finn først ut avhengighetene for ip-kommandoen:

$ ldd / bin / ip

Kopier deretter disse avhengighetene til ~ / new_root / lib katalog.

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

For / lib64-filene, kopier dem til ~ / new_root / lib64 katalog.

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

Kopier avhengigheter for pwd-kommando

Finn først ut avhengighetene for pwd-kommandoen:

$ ldd / bin / pwd

Kopier deretter disse avhengighetene til ~ / new_root / lib katalog.

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

For / lib64-filene, kopier dem til ~ / new_root / lib64 katalog.

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

For å se alle katalogene i den alternative rotkatalogen, bruk følgende kommando:

$ ls -R

5. Bytt til alternativ rotkatalog

Nå er vi endelig forberedt på å bytte til vårt nye chroot-miljø. For å endre rotkatalogen, kjør følgende kommando i skallet med root-rettigheter:

$ sudo chroot ~ / new_root / bin / bash

Hvor ~ / new_root er vår alternative rotkatalog og / bin / bash er applikasjonen vi har brukt til å sette opp chroot-miljøet.

Etter å ha kjørt kommandoen ovenfor, vil du se at bash-ledeteksten har endret seg til bash-x.y som i vårt tilfelle er bash-5.0 (hvor 5.0 er bash versjonsnummeret).

Merk: du kan støte på følgende feil etter å ha kjørt chroot-kommandoen, som jeg gjorde:

Hvis denne feilen oppstår, må du kontrollere at du har lagt til alle biblioteker og kjørbare filer relatert til det nødvendige programmet i den nye rotkatalogen.

Etter at du har kommet inn i chroot-miljøet, vil du bare kunne få tilgang til filen i den. Prøv å kjøre kommandoene du har konfigurert for chroot-miljøet ditt, inkludert noen innebygde kommandoer. Du finner de innebygde kommandoene ved å kjøre hjelp kommando i skallet.

Du kan se at vi har prøvd kommandoene "ls", "pw" og "ip", og alle lyktes. Hvis vi kjører en annen kommando enn disse tre kommandoene og de innebygde kommandoene, vil kommandoen mislykkes, ettersom vi ikke har satt den opp for chroot-miljøet. Som du kan se på skjermbildet nedenfor, har vi prøvd å kjøre kommandoen "touch", "ping" og "clear", og alle mislyktes.

6. Avslutt chroot

For å avslutte chroot-miljøet, bruk exit kommando.

Konklusjon

I denne artikkelen har du lært hva chroot er og hvordan det fungerer i Linux. Denne artikkelen viste deg trinn for trinn hvordan du bruker chroot i Debian 10 Buster for å lage et chroot-miljø for bash og andre kommandoer. Nå bør du være komfortabel med å bruke chroot-kommandoen for å endre rotkatalogen til en prosess og dens underprosesser og isolere dem fra resten av systemet.

Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...