Translation(s): česky - Deutsch - ?English - Français - Italiano - Español
chroot je na unixových operačních systémech název pro operaci, která pro běžící proces i jeho potomky změní zdánlivý kořenový adresář, respektive název pro systém podadresářů a souborů vytvořený tak, aby i nově používaný kořenový adresář měl standardizovanou podobu očekávanou od kořenových adresářů (více na Wikipedii…)
Contents
Základní instalace
Vytvoření kopie základního systému pro potřeby „chrootu“ je v Debianu velmi jednoduché:
- Nainstalujeme balíčky s pomocnými programy:
apt-get install binutils debootstrap
- Vytvoříme adresář, který pak bude v „chrootu“ kořenovým:
mkdir -p /srv/chroot/wheezy
Zaplníme chroot základní podobou systému Debian (v příkladu volíme 32bitovou architekturu i386, vydání wheezy a zrcadlo http://http.debian.net/debian)
debootstrap --arch i386 wheezy /srv/chroot/wheezy http://http.debian.net/debian
- A pak už můžeme provést (jako root) operaci chroot:
chroot /srv/chroot/wheezy
Nastavení
Obvykle je potřeba u vytvořeného chrootu ještě nastavit několik základních záležitostí.
V chrootu vytvořte soubor /usr/sbin/policy-rc.d, který zabrání dpkg, aby pouštělo démony, není-li to vyžadováno. V následující ukázce vytvořená konfigurace zamezí pouštění jakýchkoli démonů uvnitř chrootu (příkazy musíte zadat jako root):
chroot /srv/chroot/wheezy cat > ./usr/sbin/policy-rc.d <<EOF #!/bin/sh exit 101 EOF chmod a+x ./usr/sbin/policy-rc.d
Další problémem, který může být dobré vyřešit, je chybné chování programu ischroot, který má být schopen oznámit, zda je puštěn v chrootu, ale někdy selhává (685034). Řada balíčků ho ovšem důvěřivě používá a podle jím poskytnuté informace upravují své chování, což může zejména během upgradů dělat potíže. Nejsnazší způsob opravy je nahradit v chrootu ischroot příkazem /bin/true. Problémem této opravy je skutečnost, že při každé upgradu debianutils bude přepsána a bude muset být provedena znovu.
cp /bin/true /usr/bin/ischroot
Další důležitá nastavení jsou
- uživatelé a skupiny, tedy soubory
/etc/passwd /etc/groups
- síťová nastavení v souborech
/etc/hosts /etc/resolv.conf
- připojené souborové systémy z hostitelského systému (nikoliv z chrootu) nastavené v
/etc/fstab