GNU/Linux >> Znalost Linux >  >> Ubuntu

Nastavte chroot prostředí na Ubuntu pomocí debootstrap

Chroot

Chroot poskytuje způsob, jak nastavit izolované prostředí uvnitř operačního systému, kde mohou konkrétní aplikace běžet bez interakce se zbytkem systému. Říká se mu také vězení a často se používá k vytvoření testovacího prostředí pro aplikace, které nemusí být přímo nainstalovány do systému kvůli různým problémům, jako je stabilita nebo bezpečnost.

Spouštění 32bitových aplikací v prostředí chroot 64bitové ubuntu

Protože chroot izoluje aplikaci do samostatného prostředí, používá se také ke spouštění 32bitových aplikací v prostředí 64bitového OS. V dnešní době je většina operačních systémů a aplikací 64bitových na desktopu i na serverech.

Existují však scénáře, kdy aplikace nelze migrovat na 64bitovou verzi kvůli různým omezením. To se děje v organizacích, kde velké starší aplikace běží dlouhou dobu. Aby takové aplikace fungovaly, je nutné mít buď nainstalovaný 32bitový OS, nebo vytvořit 32bitové prostředí uvnitř instalace 64bitového OS.

Prostředí chroot

Chroot prostředí je způsob, jak ve vašem systému vytvořit oddělený takzvaný „vězení“, na kterém běží jiný operační systém než hostitel. Jinými slovy, je to operační systém běžící v jiném operačním systému. Technicky vzato uživatel dočasně změní kořenový adresář (obvykle /) na jiný kořenový adresář (v našem příkladu /srv/chroot).

Ve všech operačních systémech založených na Unixu je kořenový adresář vrcholem stromu souborového systému a aplikace nemají přístup k žádnému souboru nebo adresáři výše, proto mají nový, jiný kořen a mění se v něm, běžící aplikace tam jsou izolovány od zbytku hostitelského systému.

Tento přístup má mnoho výhod:

-  Test applications without the risk of compromising the entire host system.
-  From the security point of view, whatever happens in the chroot environment won't affect the host system (not even under root user)
-  A different operating system running in the same hardware

V tomto případě využijeme tuto funkci k nativnímu spouštění 32bitových aplikací v 64bitovém hostiteli.

Nezbytné balíčky pro nastavení chrootového prostředí jsou debootstrap a schroot , které jsou dostupné v úložišti ubuntu. Příkaz schroot se používá k nastavení prostředí chroot.

Debootstrap umožňuje nainstalovat novou čerstvou kopii libovolného systému Debian (nebo založeného na debianu) do adresáře se všemi základními příkazy a binárními soubory potřebnými ke spuštění základní instance operačního systému.

Můžete chrootovat přímo jako root pouhým spuštěním příkazu chroot, ale běžní uživatelé  nemohou  tento příkaz  použít. Schroot umožňuje normálním uživatelům přístup ke chrootům pomocí stejného mechanismu, ale s kontrolou oprávnění a umožňuje další automatizované nastavení prostředí chroot, jako je připojení dalších souborových systémů a další konfigurační úlohy.

Toto automatické nastavení se provádí pomocí nastavovacích skriptů, které lze přizpůsobit a rozšířit  tak, aby prováděly požadované akce, jak je vysvětleno níže.

Toto jsou kroky k implementaci této funkce v Ubuntu 12.04:

1. Nainstalujte balíčky:

Prvním krokem je instalace balíčků pomocí apt-get:

$ sudo apt-get install debootstrap
$ sudo apt-get install schroot

2. Vytvořte konfiguraci schroot:

Musíme nakonfigurovat schroot tak, aby vyhovoval našim potřebám v konfiguračním souboru.

Vyberte krátký název pro chroot, my jsme použili přesné_i386 :

$ sudo gedit /etc/schroot/chroot.d/precise_i386.conf

Poté pokračujte v konfiguraci jako v tomto příkladu:

[precise_i386]
description=Ubuntu 12.04 Precise for i386
location=/srv/chroot/precise_i386
personality=linux32
root-users=bob
type=directory
users=alice,bob,charlie

Upravte hodnoty konfiguračních parametrů ve výše uvedeném příkladu tak, aby vyhovovaly vašemu systému:

location - This should be a directory that is outside of the /home tree. 
The latest schroot documentation recommends /srv/chroot.

personality - Enable this line if the host system is 64-bit running on an amd64/x64 computer 
and the chroot is 32-bit for i386. Otherwise, leave it disabled, by adding "#" as first character.

root-users - These are users on the host system that can invoke the schroot program and 
get direct access to the chroot system as the root user.

users - These are users on the host system that can invoke the schroot program and 
get access to the chroot system. Your username on the host system should be here.

3. Nainstalujte 32bitové ubuntu pomocí debootstrap

Debootstrap stáhne a nainstaluje minimální operační systém do vašeho prostředí chroot .

Můžete si nainstalovat jakoukoli distribuci založenou na debianu podle svých preferencí, pokud máte k dispozici úložiště. Miluji tento nástroj, ušetří vám spoustu času a práce.

V našem příkladu jsme umístili prostředí chroot do adresáře /srv/chroot/precise_i386 a toto je kořenový adresář prostředí chroot.

$ sudo mkdir -p /srv/chroot/precise_i386
$ sudo debootstrap --variant=buildd --arch=i386 precise /srv/chroot/precise_i386 http://archive.ubuntu.com/ubuntu/

Stažení, instalace a konfigurace celého systému nějakou dobu trvá (v závislosti na vaší šířce pásma). Minimální instalace trvá asi 500 milionů.

4. Otestujte prostředí chroot

Nyní bychom měli mít nainstalované naše 32bitové Ubuntu.

Nejprve vypište dostupná chroot prostředí pomocí příkazu schroot.

$ schroot -l
chroot:precise_i386

jako výsledek byste měli očekávat přesné_i386.

Nyní se do toho pustíme, jednoduše zadejte jako váš běžný uživatel

$ schroot -c precise_i386 -u root

Nyní jste v chrootovaném prostředí jako root!

Zkontrolujte, zda se zpráva s výzvou mírně liší od obvyklého a zda máte nové hodnoty pro následující příkazy

lsb_release -a
uname -a

5. Další konfigurace

Nyní, když máme funkční 32bitové prostředí, pojďme dokončit instalaci minimálních požadavků a všech potřebných knihoven a aplikací.

$ apt-get install ubuntu-minimal

Toto stáhne a nainstaluje potřebné balíčky minimální instalace ubuntu.

To je vše.

Můžete začít instalovat balíčky, knihovny a závislosti, které vaše aplikace potřebuje, jako obvykle pomocí příkazu apt-get nebo dpkg. Načte verzi i386, pokud to uděláte v prostředí chroot.

Můžete jej aktualizovat a upgradovat, jako to děláte s hostitelským systémem; upravte svůj /etc/apt/sources.list a upravte jej podle svých potřeb.

Domovské adresáře uživatelů v chrootu jsou sdíleny s hostitelem.
To je velmi užitečné, abyste měli přístup k aplikacím, dokumentům a souborům, které byste měli potřebovat.

Chcete-li dokončit tento tutoriál, abyste mohli spustit grafickou aplikaci z chrootu, musíte exportovat proměnnou prostředí DISPLAY.

$ DISPLAY=:0.0 ./yourapp

Neváhejte a pošlete jakýkoli dotaz nebo komentář k tomuto článku.

Doufám, že se vám to líbilo a že vám to pomůže!!


Ubuntu
  1. Počáteční nastavení serveru s Ubuntu 14.04

  2. Jak nakonfigurovat prostředí Chroot v Ubuntu 14.04

  3. Používáte Ubuntu s nastavením na dvou obrazovkách?

  1. Nastavte Linux Container s LXC na Ubuntu 16.04

  2. Jak nastavit IP Failover s KeepAlived na Ubuntu a Debianu

  3. Nastavte uvězněný shell s jailkit na ubuntu

  1. Monitorování systému Ubuntu 20.04 s widgety Conky

  2. Monitorování systému Ubuntu 22.04 s widgety Conky

  3. Jak nastavit FTP server s VSFTPD na Ubuntu 20.04