Hvordan bruke chroot i Debian topp 10

Hvordan bruke chroot i Debian topp 10
I et testmiljø trenger vi ofte å sandkasse visse applikasjoner for å forhindre at de skader eller snuset resten av systemet. Det er forskjellige verktøy tilgjengelig for sandboksing av et program og forhindre at det påvirker resten av systemet, som VirtualBox, VMware, Xen, KVM, etc. For bare en enkelt eller noen få applikasjoner virker imidlertid sandboksing av et helt OS ikke praktisk.

For Linux OS er det et verktøy tilgjengelig, kjent som Chroot, som gir en enklere og raskere måte å sandkasse på en applikasjon. 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 “LS”, “IP” og “PWD” -kommandoer.

Hva er Chroot?

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

Hvordan fungerer chroot?

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

Bruk saker

  • Sette opp et testmiljø
  • Kjører 32-biters programmer på et 64-biters system
  • Kjører eldre programversjoner på den nyeste OS -versjonen
  • Passordgjenoppretting

Syntaks

Følgende er den grunnleggende syntaks for Chroot -kommandoen:

$ chroot kommando

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

Lag en alternativ rotkatalog

Lag først en alternativ rotkatalog som skal brukes til Chroot -miljøet.

$ sudo mkdir ~/new_root

Kommandoen ovenfor vil opprette new_root Katalog under Hjem Katalog, som vil bli brukt som rotkatalogen i Chroot -miljøet.

Legg til viktige kataloger

Lag "Bin", "lib" og "lib64" -kataloger under ~/new_root Katalog:

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

Kopier programbinarier

Alt som kreves for å kjøre en applikasjon 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 “LS”, “IP” og “PWD” -kommandoer. Derfor vil vi kopiere binærene fra /bin Katalog til alternativet ~/new_root/bin katalog. For å finne binærene til kommandoene, bruk hvilken kommando:

$ hvilken bash ls ip pwd

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

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

Kopier programavhengigheter

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

Kopiering av avhengigheter for bash

Først, finn ut avhengighetene for bash -programmet:

$ LDD /BIN /BASH

Deretter kopierer du 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 LS -kommandoen

Først, finn ut avhengighetene for LS -kommandoen:

$ LDD /BIN /LS

Deretter kopierer du 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 -kommando

Først må du finne ut avhengighetene for IP -kommandoen:

$ LDD /BIN /IP

Deretter kopierer du 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

Først må du finne ut avhengighetene for PWD -kommandoen:

$ LDD /BIN /PWD

Deretter kopierer du 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

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 rotrettigheter:

$ sudo chroot ~/new_root/bin/bash

Hvor ~/new_root er vår alternative rotkatalog og /bin/bash er applikasjonen som vi har brukt for å 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 bashversjonsnummeret).

Merk: Du kan møte følgende feil etter å ha kjørt Chroot -kommando, som jeg gjorde:

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

Etter å ha kommet inn i chroot -miljøet, vil du bare kunne få tilgang til filen i den. Prøv å kjøre kommandoene du har satt opp for Chroot-miljøet ditt, inkludert noen innebygde kommandoer. Du kan finne de innebygde kommandoene ved å kjøre hjelp Kommando i skallet.

Du kan se at vi har prøvd “LS”, “PW” og “IP” -kommandoer, og alle lyktes. Hvis vi kjører noen andre kommandoer enn disse tre kommandoene og de innebygde kommandoene, vil kommandoen mislykkes, da vi ikke har satt den opp for Chroot-miljøet. Som du kan se i følgende skjermbilde, har vi prøvd å kjøre "berøringen", "ping" og "klare" kommandoer, og alle av dem mislyktes.

Avslutt chroot

For å forlate 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.