Debian

Ako používať chroot v Debiane 10

Ako používať chroot v Debiane 10
V testovacom prostredí často potrebujeme určité aplikácie izolovať, aby sme zabránili ich poškodeniu alebo znefunkčneniu zvyšku systému. Na izolovanie programu a zabránenie ovplyvneniu zvyšku systému sú k dispozícii rôzne nástroje, napríklad VirtualBox, VMware, Xen, KVM atď. Len pre jednu alebo niekoľko aplikácií sa však sandboxovanie celého OS nezdá praktické.

Pre OS Linux je k dispozícii nástroj známy ako chroot, ktorý poskytuje ľahší a rýchlejší spôsob karantény aplikácie. Pomocou chroot môžete inštalovať a testovať ľubovoľné aplikácie bez toho, aby to malo vplyv na zvyšok systému.

Tento článok spolu s niekoľkými príkladmi vysvetlí, ako používať chroot v Debiane 10 Buster. Na vysvetlenie vytvoríme prostredie chroot pre bash a niektoré príkazy, napríklad príkazy „ls“, „ip“ a „pwd“.

Čo je to chroot?

Nástroj chroot je príkaz v systéme Linux, ktorý zmení koreňový adresár aplikácie na iný adresár. Procesy spustené v tomto novom koreňovom adresári nemôžu pristupovať k súborom mimo neho. Preto izoluje činnosť aplikácií od zvyšku systému.

Ako funguje chroot?

Program Chroot funguje tak, že skopíruje aplikáciu a všetky jej spustiteľné súbory a závislosti do alternatívneho koreňového adresára. Potom spustí aplikáciu z tohto alternatívneho koreňového adresára, čo spôsobí, že ju aplikácia bude považovať za pôvodný koreňový adresár. Koreňový adresár je najvyšší adresár v hierarchii a žiadna aplikácia sa nemôže dostať vyššie ako tento adresár, takže týmto spôsobom chroot izoluje aplikáciu od zvyšku systému.

Prípady použitia

Syntax

Nasleduje základná syntax príkazu chroot:

$ chroot príkaz

Podľa nasledujúcich pokynov použite príkaz chroot v Debiane na nastavenie prostredia chroot.

1. Vytvorte alternatívny koreňový adresár

Najskôr vytvorte alternatívny koreňový adresár, ktorý sa použije pre prostredie chroot.

$ sudo mkdir ~ / new_root

Vyššie uvedený príkaz vytvorí new_root adresár pod Domov adresár, ktorý sa použije ako koreňový adresár v prostredí chroot.

2. Pridajte základné adresáre

Vytvorte adresáre „bin“, „lib“ a „lib64“ v priečinku ~ / new_root adresár:

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

3. Kopírujte binárne súbory programu

Všetko potrebné na spustenie aplikácie v prostredí chroot musí byť v alternatívnom koreňovom adresári. V tomto článku vytvoríme prostredie chroot pre bash a niektoré príkazy vrátane príkazov „ls“, „ip“ a „pwd“. Preto skopírujeme binárne súbory z / bin adresár do náhradníka ~ / new_root / bin adresár. Ak chcete vyhľadať binárne súbory príkazov, použite príkaz which:

$ ktoré bash ls ip pwd

Ďalej skopírujte binárne súbory príkazov do súboru ~ / new_root / bin adresár.

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

4. Kopírovanie závislostí programu

Budeme tiež musieť zistiť, aké závislosti náš program potrebuje. Najskôr budeme musieť zistiť, o aké závislosti ide, a potom ich skopírujeme do adresár ~ / new_root / lib.

Kopírovanie závislostí pre bash

Najskôr zistite závislosti pre bash program:

$ ldd / bin / bash

Potom skopírujte tieto závislosti do ~ / new_root / lib adresár.

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

Súbory / lib64 skopírujte do ~ / new_root / lib64 adresár.

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

Kopírovanie závislostí pre príkaz ls

Najskôr zistite závislosti pre príkaz ls:

$ ldd / bin / ls

Potom skopírujte tieto závislosti do ~ / new_root / lib adresár.

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

Súbory / lib64 skopírujte do ~ / new_root / lib64 adresár.

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

Kopírovanie závislostí pre príkaz ip

Najskôr zistite závislosti pre príkaz ip:

$ ldd / bin / ip

Potom skopírujte tieto závislosti do ~ / new_root / lib adresár.

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

Súbory / lib64 skopírujte do ~ / new_root / lib64 adresár.

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

Kopírovanie závislostí pre príkaz pwd

Najskôr zistite závislosti pre príkaz pwd:

$ ldd / bin / pwd

Potom skopírujte tieto závislosti do ~ / new_root / lib adresár.

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

Súbory / lib64 skopírujte do ~ / new_root / lib64 adresár.

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

Ak chcete zobraziť všetky adresáre v alternatívnom koreňovom adresári, použite nasledujúci príkaz:

$ ls -R

5. Prepnite na alternatívny koreňový adresár

Teraz sme konečne pripravení prejsť na naše nové prostredie chroot. Ak chcete zmeniť koreňový adresár, spustite v shelli nasledujúci príkaz s oprávneniami root:

$ sudo chroot ~ / new_root / bin / bash

Kde ~ / new_root je náš alternatívny koreňový adresár a / bin / bash je aplikácia, ktorú sme použili na nastavenie prostredia chroot.

Po spustení vyššie uvedeného príkazu uvidíte, že príkazový riadok sa zmenil na bash-x.r čo v našom prípade je bash-5.0 (kde 5.0 je číslo verzie bash).

Poznámka: po spustení príkazu chroot sa môžete stretnúť s nasledujúcou chybou, ako som to urobil ja:

Ak sa vyskytne táto chyba, skontrolujte, či ste do nového koreňového adresára pridali všetky knižnice a spustiteľné súbory súvisiace s požadovaným programom.

Po vstupe do prostredia chroot budete mať prístup iba k súboru v ňom. Skúste spustiť príkazy, ktoré ste nastavili pre svoje prostredie chroot, vrátane niektorých zabudovaných príkazov. Integrované príkazy nájdete spustením príkazu Pomoc príkaz v škrupine.

Vidíte, že sme vyskúšali príkazy „ls“, „pw“ a „ip“ a všetky boli úspešné. Ak spustíme akýkoľvek iný príkaz ako tieto tri príkazy a vstavané príkazy, príkaz zlyhá, pretože sme ho nenastavili pre prostredie chroot. Ako vidíte na nasledujúcej snímke obrazovky, pokúsili sme sa spustiť príkazy „touch“, „ping“ a „clear“ a všetky zlyhali.

6. Ukončite chroot

Na opustenie prostredia chroot použite: východ príkaz.

Záver

V tomto článku ste sa dozvedeli, čo je chroot a ako funguje v systéme Linux. Tento článok vám podrobne ukázal, ako používať chroot v Debiane 10 Buster na vytvorenie prostredia chroot pre bash a ďalšie príkazy. Teraz by vám malo byť pohodlné používať príkaz chroot na zmenu koreňového adresára procesu a jeho čiastkových procesov a ich izoláciu od zvyšku systému.

Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...