Differences between revisions 1 and 2
Revision 1 as of 2013-09-13 16:04:00
Size: 1383
Comment: základ
Revision 2 as of 2013-09-13 20:46:01
Size: 2878
Comment: pokračování
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
== 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á (DebianBug: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 DebianPkg: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
}}}

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…)

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