Chroot

From Wikipedia, the free encyclopedia

Remove ads

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.

Gyors adatok

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.

Remove ads

Története

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]

Remove ads

Használata

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.

Szintaxis

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

Sematikus ábra

         '/' (root könyvtár)
          |---'/bin
          |---'/boot'
          |---'/cdrom'
        [...]
          |
          |---"/chroot"
          |
        -------------------[ chroot ]------------------
      |   |----"/chroot/user1"                        |
      |           |                                   |
      |           |----"/chroot/user1/program"        |
Remove ads

Források

Jegyzetek

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads