close
Ugrás a tartalomhoz

chroot

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából
Chroot

FejlesztőBill Joy
Operációs rendszer
Platformplatformfüggetlen
Kategória
  • rendszerhívás
  • command-line tool

A chroot egy Unix és Unix-szerű operációs rendszereken elérhető parancs és rendszerhívás, amely egy adott folyamat és annak leszármazott folyamatai számára megváltoztatja a gyökérkönyvtár (/) elérési útját egy új, a fájlrendszeren belül meghatározott helyre. Ez a folyamat lehet az interaktív shell is. Az ebben a módosított környezetben futtatott program nem látja a kijelölt könyvtárfán kívüli fájlokat, így általában nem is fér hozzájuk. Ezt a megváltoztatott környezetet chroot jail-nek (börtönnek) is nevezik, mivel a folyamat számára a fájlrendszer többi része láthatatlanná és elérhetetlenné válik. Általában könnyen megkerülhető, önmagában nem számít komoly biztonsági intézkedésnek.

A legtöbb Linux telepítőmédia és LiveCD (illetve Live USB) alapvető része, mivel kulcsfontosságú a rendszerek telepítésénél és helyreállításánál. A telepítőkészlet a chroot segítségével a feltelepített rendszeren tud parancsokat végrehajtani, amelyekkel a feltelepített rendszer kezdeti beállításait végzi.

A chroot rendszerhívás 1979-ben jelent meg a Version 7 Unix (röviden V7) operációs rendszerben, ami a parancs első ismert implementációja.

A parancs szélesebb körű elterjedése Bill Joy nevéhez fűződik. Egy forrás szerint 1982. március 18-án, 17 hónappal a 4.2BSD hivatalos kiadása előtt adta hozzá a rendszerhez. A célja kifejezetten az volt, hogy a készülő operációs rendszer telepítő- és fordítási rendszerét egy ettől elszigetelt környezetben tesztelhesse.

Bár eredetileg fejlesztői eszköznek szánták, a fájlrendszer-izolációs képességei miatt hamarosan biztonsági célokra is alkalmazni kezdték, hogy potenciálisan sebezhető szolgáltatásokat (például FTP-szervereket) egy korlátozott „börtönbe” zárjanak egy sikeres támadás hatásainak enyhítésére. Ezzel a modern konténerizációs technológiák egyik fontos előfutárává vált.[1]

A chroot koncepcióját a FreeBSD bővítette tovább a virtualizáció hatékonyabb támogatása érdekében. A 2000-ben kiadott 4.0-s verziójukban bevezették a jail (börtön) parancsot, amely a chroot-nál egy jóval erősebb izolációt biztosít.[2]

A chroot rendkívül hasznos fejlesztői eszköz, főleg amikor szoftvereket fordítunk forráskódból. Használatával a fordítást egy izolált, "tiszta" környezetben végezhetjük el, amely független a saját rendszerünkön lévő programoktól és beállításoktól. Ezt a módszert széles körben alkalmazzák szoftvercsomagok vagy akár teljes Linux-rendszerek készítésekor, hogy elkerüljék a függőségi problémákat.

chroot ÚJROOT [PARANCS...]

Egy program futtatásához nem elegendő maga a program. Szükség van minden olyan megosztott könyvtárra, konfigurációs fájlra és eszközfájlra, amelytől a program függ.

Ahhoz, hogy egy chroot környezet rendesen működjön, a gazdarendszerből át kell adni neki a szükséges fájlokat: a beállításokat át kell másolni, a kernel fontosabb rendszerfájljait pedig csatolni kell:

# Virtuális kernel-fájlrendszerek csatolása
CHROOT_MAPPA="/chroot/user1"
mount -t proc proc $CHROOT_MAPPA/proc
mount -t sysfs sysfs $CHROOT_MAPPA/sys
mount -t devtmpfs devtmpfs $CHROOT_MAPPA/dev
mount -t tmpfs tmpfs $CHROOT_MAPPA/dev/shm
mount -t devpts devpts $CHROOT_MAPPA/dev/pts

# /etc/hosts másolása
/bin/cp -f /etc/hosts $CHROOT_MAPPA/etc/

# /etc/resolv.conf másolása
/bin/cp -f /etc/resolv.conf $CHROOT_MAPPA/etc/resolv.conf

# /etc/mtab linkelése
chroot $CHROOT_MAPPA rm /etc/mtab 2> /dev/null 
chroot $CHROOT_MAPPA ln -s /proc/mounts /etc/mtab
         '/' (root könyvtár)
          |---'/bin
          |---'/boot'
          |---'/cdrom'
        [...]
          |
          |---"/chroot"
          |
        -------------------[ chroot ]------------------
      |   |----"/chroot/user1"                        |
      |           |                                   |
      |           |----"/chroot/user1/program"        |
  • "Chroot – HUPwiki". HUPwiki. 2011. május 5. dátummal az eredeti címről archiválva. Hozzáférés: 2025. augusztus 7..
  • T.J. O'Connor. "Chroot-jail your applications for safety". unixwiz.net (angol nyelven). Hozzáférés: 2025. augusztus 7..
  • "chroot(8) — The FreeBSD System Manager's Manual". The FreeBSD Project (angol nyelven). Hozzáférés: 2025. augusztus 7..
  1. Steve O'Grady (2022. szeptember 2.). "Are chroots and containers the same?". Red Hat (angol nyelven). Hozzáférés: 2025. augusztus 7..
  2. Riondato, Matteo. "FreeBSD Handbook "Jails" Chapter". freebsd.org (angol nyelven). The FreeBSD Project. Hozzáférés: 2025. augusztus 7..