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
- Tesztkörnyezet beállítása
- 32 bites programok futtatása 64 bites rendszeren
- Régebbi programverziók futtatása a legújabb operációs rendszer verzióján
- Jelszó visszaállítás
Szintaxis
A következő a chroot parancs alapvető szintaxisa:
$ chrootKö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_rootA 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, lib643. 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 / libA / lib64 fájlokhoz másolja őket a ~ / new_root / lib64 Könyvtár.
$ cp -v / lib64 / ld-linux-x86-64.így.2 ~ / new_root / lib64Má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 / lib64Má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-linuxgnu / 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 / lib64Má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 / libA / 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 / lib64Az 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 / bashHol ~ / 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.