Debian

Jak používat chroot v Debianu 10

Jak používat chroot v Debianu 10
V testovacím prostředí často potřebujeme izolovat určité aplikace, abychom jim zabránili v poškození nebo odcizení zbytku systému. K dispozici jsou různé nástroje pro sandboxování programu a zabránění jeho ovlivnění zbytku systému, například VirtualBox, VMware, Xen, KVM atd. Avšak pouze pro jednu nebo několik aplikací se sandboxování celého OS nezdá praktické.

Pro OS Linux je k dispozici nástroj známý jako chroot, který poskytuje snadnější a rychlejší způsob sandboxování aplikace. Pomocí nástroje chroot můžete nainstalovat a otestovat libovolnou aplikaci, aniž by to ovlivnilo zbytek systému.

Tento článek vysvětlí, jak používat chroot v Debianu 10 Buster, spolu s několika příklady. Pro vysvětlení vytvoříme chroot prostředí pro bash a některé příkazy, například příkazy „ls“, „ip“ a „pwd“.

Co je to chroot?

Nástroj chroot je příkaz v systému Linux, který změní kořenový adresář aplikace na jiný adresář. Procesy spuštěné v tomto novém kořenovém adresáři nemají přístup k souborům mimo něj. Izoluje tedy provoz aplikací od zbytku systému.

Jak funguje chroot?

Chroot funguje tak, že zkopíruje aplikaci a všechny její spustitelné soubory a závislosti do alternativního kořenového adresáře. Poté spustí aplikaci z tohoto alternativního kořenového adresáře, což způsobí, že ji aplikace bude považovat za původní kořenový adresář. Kořenový adresář je nejvyšší adresář v hierarchii a žádná aplikace nemůže dosáhnout výše než tento adresář, takže chroot takto izoluje aplikaci od zbytku systému.

Případy užití

Syntax

Následuje základní syntaxe příkazu chroot:

$ chroot příkaz

Podle následujících pokynů použijte chroot v Debianu k nastavení prostředí chroot.

1. Vytvořte alternativní kořenový adresář

Nejprve vytvořte alternativní kořenový adresář, který bude použit pro prostředí chroot.

$ sudo mkdir ~ / new_root

Výše uvedený příkaz vytvoří new_root adresář pod Domov adresář, který bude použit jako kořenový adresář v prostředí chroot.

2. Přidejte základní adresáře

Vytvořte adresáře „bin“, „lib“ a „lib64“ pod adresářem ~ / new_root adresář:

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

3. Zkopírujte binární soubory programu

Vše potřebné ke spuštění aplikace v prostředí chroot musí být v alternativním kořenovém adresáři. V tomto článku vytvoříme chroot prostředí pro bash a některé příkazy, včetně příkazů „ls“, „ip“ a „pwd“. Zkopírujeme proto binární soubory z /zásobník do alternativního adresáře ~ / new_root / bin adresář. Chcete-li vyhledat binární soubory příkazů, použijte příkaz which:

$ které bash ls ip pwd

Dále zkopírujte binární soubory příkazů do ~ / new_root / bin adresář.

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

4. Zkopírujte závislosti programu

Budeme také muset zjistit, jaké závislosti náš program potřebuje. Nejprve budeme muset zjistit, jaké jsou tyto závislosti, a potom je zkopírujeme do adresář ~ / new_root / lib.

Kopírování závislostí pro bash

Nejprve zjistěte závislosti pro bash program:

$ ldd / bin / bash

Potom zkopírujte tyto závislosti do ~ / new_root / lib adresář.

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

U souborů / lib64 je zkopírujte do ~ / new_root / lib64 adresář.

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

Zkopírujte závislosti pro příkaz ls

Nejprve zjistěte závislosti pro příkaz ls:

$ ldd / bin / ls

Potom zkopírujte tyto závislosti do ~ / new_root / lib adresář.

$ 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

U souborů / lib64 je zkopírujte do ~ / new_root / lib64 adresář.

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

Zkopírujte závislosti pro příkaz ip

Nejprve zjistěte závislosti pro příkaz ip:

$ ldd / bin / ip

Potom zkopírujte tyto závislosti do ~ / new_root / lib adresář.

$ 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

U souborů / lib64 je zkopírujte do ~ / new_root / lib64 adresář.

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

Zkopírujte závislosti pro příkaz pwd

Nejprve zjistěte závislosti pro příkaz pwd:

$ ldd / bin / pwd

Potom zkopírujte tyto závislosti do ~ / new_root / lib adresář.

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

U souborů / lib64 je zkopírujte do ~ / new_root / lib64 adresář.

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

Chcete-li zobrazit všechny adresáře v alternativním kořenovém adresáři, použijte následující příkaz:

$ ls -R

5. Přepněte na alternativní kořenový adresář

Nyní jsme konečně připraveni přejít na naše nové prostředí chroot. Chcete-li změnit kořenový adresář, spusťte v shellu následující příkaz s oprávněním root:

$ sudo chroot ~ / new_root / bin / bash

Kde ~ / new_root je náš alternativní kořenový adresář a / bin / bash je aplikace, kterou jsme použili k nastavení chroot prostředí.

Po spuštění výše uvedeného příkazu uvidíte, že příkazový řádek bash se změnil na bash-x.y což je v našem případě bash-5.0 (kde 5.0 je číslo verze bash).

Poznámka: po spuštění příkazu chroot se můžete setkat s následující chybou, stejně jako já:

Pokud k této chybě dojde, zkontrolujte, zda jste do nového kořenového adresáře přidali všechny knihovny a spustitelné soubory související s požadovaným programem.

Po vstupu do prostředí chroot budete mít přístup pouze k souboru v něm. Zkuste spustit příkazy, které jste nastavili pro prostředí chroot, včetně některých předdefinovaných příkazů. Integrované příkazy najdete spuštěním Pomoc příkaz v prostředí.

Vidíte, že jsme vyzkoušeli příkazy „ls“, „pw“ a „ip“ a všechny uspěly. Pokud spustíme jakýkoli jiný příkaz než tyto tři a integrované příkazy, příkaz selže, protože jsme jej nenastavili pro prostředí chroot. Jak vidíte na následujícím snímku obrazovky, zkusili jsme spustit příkazy „touch“, „ping“ a „clear“ a všechny selhaly.

6. Ukončete chroot

Chcete-li ukončit prostředí chroot, použijte výstup příkaz.

Závěr

V tomto článku jste se dozvěděli, co je chroot a jak funguje v Linuxu. Tento článek vám ukázal, jak pomocí chrootu v Debianu 10 Buster vytvořit chroot prostředí pro bash a další příkazy. Nyní byste měli pohodlně používat příkaz chroot ke změně kořenového adresáře procesu a jeho dílčích procesů a jejich izolaci od zbytku systému.

Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...