Debian

Sådan bruges chroot i Debian 10

Sådan bruges chroot i Debian 10
I et testmiljø er vi ofte nødt til at sandkasse bestemte applikationer for at forhindre dem i at beskadige eller snuse resten af ​​systemet. Der er forskellige værktøjer til rådighed til sandboxing af et program og forhindrer det i at påvirke resten af ​​systemet, som VirtualBox, VMware, Xen, KVM osv. Men for kun en enkelt eller et par applikationer virker sandboxing af et helt operativsystem ikke praktisk.

Til Linux OS er der et værktøj til rådighed, kendt som chroot, der giver en nemmere og hurtigere måde at sandboxe en applikation på. Med chroot kan du installere og teste ethvert program uden at påvirke resten af ​​systemet.

Denne artikel vil forklare, hvordan du bruger chroot i Debian 10 Buster sammen med et par eksempler. For forklaring opretter vi et chroot-miljø til bash og nogle af kommandoerne, såsom kommandoerne “ls”, “ip” og “pwd”.

Hvad er chroot?

Chroot-værktøjet er en kommando i Linux, der ændrer rodapplikationen for en applikation til en anden bibliotek. Processer, der kører i dette nye rodkatalog, har ikke adgang til filerne uden for det. Derfor isolerer det driften af ​​applikationer fra resten af ​​systemet.

Hvordan fungerer chroot?

Chroot fungerer ved at kopiere applikationen og alle dens eksekverbare filer og afhængigheder inde i den alternative rodmappe. Det kører derefter applikationen fra denne alternative rodkatalog, hvilket får applikationen til at betragte den som den oprindelige rodkatalog. Rodmappen er den øverste mappe i hierarkiet, og ingen applikationer kan nå højere end denne mappe, så det er sådan, chroot isolerer applikationen fra resten af ​​systemet.

Brug sager

Syntaks

Følgende er den grundlæggende syntaks for chroot-kommandoen:

$ chroot kommando

Følg nedenstående trin for at bruge chroot-kommandoen i Debian til at oprette et chroot-miljø.

1. Opret en alternativ rodmappe

Opret først en alternativ rodmappe, der skal bruges til chroot-miljøet.

$ sudo mkdir ~ / new_root

Ovenstående kommando opretter new_root bibliotek under Hjem katalog, som vil blive brugt som rodmappe i chroot-miljøet.

2. Tilføj vigtige mapper

Opret mapperne "bin", "lib" og "lib64" under ~ / new_root vejviser:

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

3. Kopier programbinarier

Alt, hvad der kræves for at køre et program i chroot-miljøet, skal være i den alternative rodkatalog. I denne artikel opretter vi et chroot-miljø til bash og nogle kommandoer, herunder kommandoerne "ls", "ip" og "pwd". Derfor kopierer vi binærfilerne fra /beholder mappe til den alternative ~ / new_root / bin vejviser. For at finde binærerne for kommandoerne skal du bruge kommandoen hvilken:

$ som bash ls ip pwd

Kopier derefter binærfiler af kommandoerne til ~ / new_root / bin vejviser.

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

4. Kopier programafhængigheder

Vi bliver også nødt til at finde ud af, hvilke afhængigheder vores program har brug for. Først skal vi finde ud af, hvad disse afhængigheder er, og derefter kopierer vi dem til ~ / new_root / lib mappe.

Kopieringsafhængigheder til bash

Find først ud af afhængighederne for bash-programmet:

$ ldd / bin / bash

Kopier derefter disse afhængigheder til ~ / new_root / lib vejviser.

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

Kopier dem til / lib64-filerne til ~ / new_root / lib64 vejviser.

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

Kopiér afhængigheder for ls Command

Find først ud af afhængighederne for kommandoen ls:

$ ldd / bin / ls

Kopier derefter disse afhængigheder til ~ / new_root / lib vejviser.

$ 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

Kopier dem til / lib64-filerne til ~ / new_root / lib64 vejviser.

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

Kopier afhængigheder til ip Command

Find først ud af afhængighederne for ip-kommandoen:

$ ldd / bin / ip

Kopier derefter disse afhængigheder til ~ / new_root / lib vejviser.

$ 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

Kopier dem til / lib64-filerne til ~ / new_root / lib64 vejviser.

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

Kopier afhængigheder for pwd-kommando

Find først ud af afhængighederne for pwd-kommandoen:

$ ldd / bin / pwd

Kopier derefter disse afhængigheder til ~ / new_root / lib vejviser.

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

Kopier dem til / lib64-filerne til ~ / new_root / lib64 vejviser.

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

For at se alle mapper i den alternative rodmappe skal du bruge følgende kommando:

$ ls -R

5. Skift til alternativ rodmappe

Nu er vi endelig parat til at skifte til vores nye chroot-miljø. For at ændre rodmappen skal du køre følgende kommando i skallen med rodrettigheder:

$ sudo chroot ~ / new_root / bin / bash

Hvor ~ / new_root er vores alternative rodkatalog og / bin / bash er det program, som vi har brugt til at oprette chroot-miljøet.

Efter at have kørt ovenstående kommando, vil du se, at bash-prompten er ændret til bash-x.y hvilket i vores tilfælde er bash-5.0 (hvor 5.0 er bash-versionsnummeret).

Bemærk: du kan støde på følgende fejl efter at have kørt chroot-kommandoen, som jeg gjorde:

Hvis denne fejl opstår, skal du kontrollere, at du har tilføjet alle biblioteker og eksekverbare filer, der er relateret til det krævede program, til det nye rodkatalog.

Når du har indtastet chroot-miljøet, kan du kun få adgang til filen i det. Prøv at køre de kommandoer, du har konfigureret til dit chroot-miljø, inklusive nogle indbyggede kommandoer. Du kan finde de indbyggede kommandoer ved at køre Hjælp kommando i skallen.

Du kan se, at vi har prøvet kommandoerne "ls", "pw" og "ip", og alle lykkedes. Hvis vi kører en anden kommando end disse tre kommandoer og de indbyggede kommandoer, mislykkes kommandoen, da vi ikke har konfigureret den til chroot-miljøet. Som du kan se i det følgende skærmbillede, har vi forsøgt at køre kommandoerne "touch", "ping" og "clear", og alle mislykkedes.

6. Afslut chroot

For at forlade chroot-miljøet skal du bruge Afslut kommando.

Konklusion

I denne artikel har du lært, hvad chroot er, og hvordan det fungerer i Linux. Denne artikel viste dig trin for trin, hvordan du bruger chroot i Debian 10 Buster til at skabe et chroot-miljø til bash og andre kommandoer. Nu skal du være fortrolig med at bruge kommandoen chroot til at ændre rodmappen til en proces og dens underprocesser og isolere dem fra resten af ​​systemet.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...