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
- Nastavenie testovacieho prostredia
- Spúšťanie 32-bitových programov na 64-bitovom systéme
- Používanie starších verzií programu na najnovšej verzii operačného systému
- Obnova hesla
Syntax
Nasleduje základná syntax príkazu chroot:
$ chrootPodľ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_rootVyšš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, lib643. 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 / libSúbory / lib64 skopírujte do ~ / new_root / lib64 adresár.
$ cp -v / lib64 / ld-linux-x86-64.tak.2 ~ / new_root / lib64Kopí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 / lib64Kopí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-linuxgnu / 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 / lib64Kopí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 / libSúbory / lib64 skopírujte do ~ / new_root / lib64 adresár.
$ sudo cp -v / lib64 / ld-linux-x86-64.tak.2 ~ / new_root / lib64Ak 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 / bashKde ~ / 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.