Debian

A chroot használata a Debian 10-ben

A chroot használata a Debian 10-ben
Tesztelési környezetben gyakran szükségünk van bizonyos alkalmazások homokba helyezésére, hogy megakadályozzuk azokat a rendszer többi részének károsodásában vagy szaglásában. Különböző eszközök állnak rendelkezésre a program sandboxolásához és annak megakadályozásához, hogy befolyásolja a rendszer többi részét, például a VirtualBox, VMware, Xen, KVM stb. Azonban csak egy vagy néhány alkalmazás esetében nem tűnik praktikusnak a teljes operációs rendszer sandboxolása.

Linux operációs rendszer esetén rendelkezésre áll egy chroot néven ismert eszköz, amely egyszerűbb és gyorsabb módot kínál az alkalmazások sandboxolásához. A chroot segítségével bármilyen alkalmazást telepíthet és tesztelhet a rendszer többi részének befolyásolása nélkül.

Ez a cikk néhány példával együtt elmagyarázza a chroot használatát a Debian 10 Buster programban. Magyarázatképpen létrehozunk egy chroot környezetet a bash-nak és néhány parancsnak, például az „ls”, „ip” és „pwd” parancsoknak.

Mi a chroot?

A chroot eszköz egy olyan parancs a Linuxban, amely egy alkalmazás gyökérkönyvtárát megváltoztatja egy másik könyvtárra. Az új gyökérkönyvtárban futó folyamatok nem férhetnek hozzá a rajta kívüli fájlokhoz. Ezért elkülöníti az alkalmazások működését a rendszer többi részétől.

Hogyan működik a chroot?

A Chroot úgy működik, hogy az alternatív gyökérkönyvtárba másolja az alkalmazást, valamint az összes futtatható fájlt és függőséget. Ezután az alternatív gyökérkönyvtárból futtatja az alkalmazást, aminek hatására az alkalmazás eredeti gyökérkönyvtárnak tekinti. A gyökérkönyvtár a legfelső könyvtár a hierarchiában, és egyetlen alkalmazás sem érheti el ennél a könyvtárnál magasabb szintet, így a chroot így izolálja az alkalmazást a rendszer többi részétől.

Használjon tokokat

Szintaxis

A következő a chroot parancs alapvető szintaxisa:

$ chroot parancs

Kövesse az alábbi lépéseket a chroot parancs használatához a Debianban egy chroot környezet beállításához.

1. Hozzon létre egy alternatív gyökérkönyvtárat

Először hozzon létre egy alternatív gyökérkönyvtárat a chroot környezethez.

$ sudo mkdir ~ / new_root

A fenti parancs létrehozza a új_gyökér könyvtár alatt a itthon könyvtár, amelyet gyökérkönyvtárként fognak használni a chroot környezetben.

2. Alapvető könyvtárak hozzáadása

Hozza létre a „bin”, a „lib” és a „lib64” könyvtárakat a ~ / new_root Könyvtár:

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

3. Program binárisainak másolása

Az alkalmazás futtatásához a chroot környezetben minden szükségesnek az alternatív gyökérkönyvtárban kell lennie. Ebben a cikkben létrehozunk egy chroot környezetet a bash és néhány parancs számára, beleértve az „ls”, „ip” és „pwd” parancsokat. Ezért átmásoljuk a bináris fájlokat a /kuka könyvtárat az alternatívra ~ / new_root / bin Könyvtár. A parancsok bináris fájljainak megkereséséhez használja a melyik parancsot:

$ amely bash ls ip pwd

Ezután másolja a parancsok bináris fájljait a ~ / new_root / bin Könyvtár.

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

4. Programfüggőségek másolása

Ki kell derítenünk azt is, hogy milyen függőségekre van szükségünk a programunk számára. Először meg kell találnunk, melyek ezek a függőségek, majd átmásoljuk őket a ~ / new_root / lib könyvtár.

A Bash függőségeinek másolása

Először derítse ki a bash program függőségeit:

$ ldd / bin / bash

Ezután másolja ezeket a függőségeket a ~ / new_root / lib Könyvtár.

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

A / lib64 fájlokhoz másolja őket a ~ / new_root / lib64 Könyvtár.

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

Másolja az ls parancs függőségeit

Először derítse ki az ls parancs függőségeit:

$ ldd / bin / ls

Ezután másolja ezeket a függőségeket a ~ / new_root / lib Könyvtár.

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

A / lib64 fájlokhoz másolja őket a ~ / new_root / lib64 Könyvtár.

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

Másolja az ip parancs függőségeit

Először derítse ki az ip parancs függőségeit:

$ ldd / bin / ip

Ezután másolja ezeket a függőségeket a ~ / new_root / lib Könyvtár.

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

A / lib64 fájlokhoz másolja őket a ~ / new_root / lib64 Könyvtár.

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

Másolja a pwd parancs függőségeit

Először derítse ki a pwd parancs függőségeit:

$ ldd / bin / pwd

Ezután másolja ezeket a függőségeket a ~ / new_root / lib Könyvtár.

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

A / lib64 fájlokhoz másolja őket a ~ / new_root / lib64 Könyvtár.

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

Az alternatív gyökérkönyvtár összes könyvtárának megtekintéséhez használja a következő parancsot:

$ ls -R

5. Váltson az Alternatív gyökérkönyvtárra

Most végre felkészültünk arra, hogy áttérjünk új chroot környezetünkre. A gyökérkönyvtár megváltoztatásához futtassa a következő parancsot a shellben root jogosultságokkal:

$ sudo chroot ~ / new_root / bin / bash

Hol ~ / new_root alternatív gyökérkönyvtárunk és / bin / bash az az alkalmazás, amelyet a chroot környezet beállításához használtunk.

A fenti parancs futtatása után látni fogja, hogy a bash parancs megváltozott bash-x.y ami esetünkben az bash-5.0 (ahol 5.0 a bash verziószám).

Jegyzet: a chroot parancs futtatása után a következő hibával találkozhat, mint én:

Ha ez a hiba jelentkezik, ellenőrizze, hogy a szükséges programhoz kapcsolódó összes könyvtárat és futtatható fájlt hozzáadta-e az új gyökérkönyvtárhoz.

A chroot környezetbe való belépés után csak a benne lévő fájlhoz férhet hozzá. Futtassa a chroot környezetéhez beállított parancsokat, beleértve néhány beépített parancsot is. A beépített parancsokat megtalálja a Segítség parancs a héjban.

Láthatja, hogy kipróbáltuk az „ls”, „pw” és „ip” parancsokat, és mindegyiküknek sikerült. Ha a három és a beépített parancsokon kívül bármilyen parancsot futtatunk, a parancs meghiúsul, mivel nem állítottuk be a chroot környezethez. Amint az a következő képernyőképen látható, megpróbáltuk futtatni a „touch”, a „ping” és a „clear” parancsokat, és mindegyik nem sikerült.

6. Kilépés a chroot-ból

A chroot környezetből való kilépéshez használja a kijárat parancs.

Következtetés

Ebben a cikkben megtudhatta, mi a chroot és hogyan működik a Linuxban. Ez a cikk lépésről lépésre bemutatta, hogyan használhatja a chroot-t a Debian 10 Buster programban a chroot környezet létrehozásához a bash és más parancsok számára. A chroot paranccsal kényelmesen módosíthatja a folyamat gyökérkönyvtárát és annak alfolyamatait, és elkülönítheti őket a rendszer többi részétől.

Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...
0 A.D. Bemutató
A sok stratégiai játék közül 0 A.D. átfogó címként és nagyon mély, taktikus játékként képes kiemelkednie annak ellenére, hogy nyílt forráskódú. A játé...
Unity3D bemutató
Bevezetés a Unity 3D-be Az Unity 3D egy erőteljes játékfejlesztő motor. Ez több platformon keresztül lehetővé teszi játékok, mobil, webes, asztali és ...