Ez a dokumentum egy előző változata!
Tartalomjegyzék
Chroot
A chroot utasítás segítségével az operációs rendszer egy könyvtárában alakítjuk ki a program futásához szükséges környezetet. Ebben a környezetben a futtatáshoz szükséges összes állományt a forrás fájlrendszer struktúráját követve adjuk meg.
Programok futtatása
Egyszerű shell futtatása
Létrehozzuk a chroot könyvtárat, majd bemásoljuk a 'bash' programot. majd 'chroot' paramétereként.
# mkdir -p /opt/chroot/01-shell-minimal # type bash bash: /usr/sbin/bash # mkdir -p /opt/chroot/01-shell-minimal/usr/bin cp -a /usr/bin/bash /opt/chroot/01-shell-minimal/usr/bin
Futtatjuk a programot chroot nélkül. Ellenőrizzük a szülö shell PID-jét, a futtatot program PID-jét, majd kilépés után újra a szülőt.
# echo $$ 4595 # /opt/chroot/01-shell-minimal/usr/bin/bash # echo $$ 5121 # exit exit # echo $$ 4595
Futtassuk a programot 'chroot' segítségével. Hibát kapunk, mert a programhoz tartozó megosztott függvényeket tartalmazó állományok hiányoznak.
# chroot /opt/chroot/01-shell-minimal /usr/bin/bash chroot: failed to run command ‘/usr/bin/bash’: No such file or directory
Ellenőrizzük mire van szükség.
<code> # ldd /usr/bin/bash
linux-vdso.so.1 (0x00007f5879c64000) libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f5879aa9000) libc.so.6 => /lib64/libc.so.6 (0x00007f58798b6000) /lib64/ld-linux-x86-64.so.2 (0x00007f5879c66000)
<code>
A hiányzó állományok listájában három típust különböztetünk meg:
- a programhoz linkelt állomány 'linux-vdso.so.1 (0x00007f5879c64000)' nincs vele teendő. - dinamikusan linkelt állomány amit a program hivatkozás segítségével ér el 'libtinfo.so.6 ⇒ /lib64/libtinfo.so.6 (0x00007f5879aa9000)'. - statikusan megadott állomány, amelynek helye nem módosítható '/lib64/ld-linux-x86-64.so.2 (0x00007f5879c66000)'.
Hozzuk létre a könyvtárstruktúrát és másoljuk be az állományokat. A példában a szimbolikus linkeket is létrehozzuk.
