GNU/Linux >> Znalost Linux >  >> Linux

Praktický průvodce pro příkaz chroot v Linuxu

Někdy může být nutné izolovat proces od ostatních procesů běžících ve vašem systému. Můžeme to udělat pomocí příkazu chroot v Linuxu.

V tomto tutoriálu vám ukážeme, co je to příkaz chroot a jak můžete tento příkaz použít k vytvoření vězení chroot a uvěznění uživatele nebo skupiny v izolovaném prostředí.

Porozumění příkazu chroot v Linuxu

Příkaz chroot je v systémech Linux nezbytný. Pomůže vám změnit kořenový adresář procesu spolu s jeho podřízenými procesy. Když pro uživatele nebo skupinu vytvoříme falešný kořenový adresář, ztratí přístup ke skutečnému kořenovému adresáři.

Uživatel nebo skupina jsou proto nyní izolováni od zbytku našeho systému. To může mít mnoho využití, například následující:

  • Vytvořte testovací prostředí pro vývoj a testování softwaru.
  • Inicializujte přeinstalaci souborů bootloaderu ve vašem systému
  • Spouštějte software, který může být zničený
  • Vylepšete zabezpečení pomocí mechanismu ringfencing

Příkaz chroot v podstatě vytváří virtuální prostředí. Jeho funkce je podobná virtuálnímu počítači, ale nevyžaduje, abyste věnovali vyhrazené zdroje pro chroot vězení.

Virtuální prostředí sdílí celé jádro s hostitelským systémem.

Syntaxe příkazu chroot

Příkaz chroot v Linuxu má následující syntaxi.

chroot [-OPTION] [PATH FOR NEW ROOT] [PATH FOR SERVER]

Jediným parametrem nezbytným pro spuštění příkazu chroot je cesta k novému kořenovému adresáři. K dosažení požadovaných výsledků však můžete použít možnosti dostupné v příkazu chroot.

Zde jsou možnosti, které máte k dispozici při použití příkazu chroot v Linuxu.

  • –userspec=USER[:GROUP] – Používá se k definování uživatele nebo skupiny, na které chceme použít příkaz chroot. Skupinu nebo uživatele, kterého chceme používat, můžeme specifikovat jménem nebo ID
  • –groups=G_List – Používá se ke specifikaci doplňkových skupin, které chceme použít jako G1, G2… Gn
  • — pomoc – Zobrazí obrazovku nápovědy a ukončí se
  • –verze – Zobrazí data verze a ukončí se

Vytvoření příkazového vězení chroot

Nyní, když rozumíme příkazu chroot a jeho syntaxi, je čas jej použít. Abychom vám ukázali, jak se to dělá, vytvoříme chroot vězení.

Chroot vězení je virtuální prostředí vytvořené změnou kořenového adresáře uživatele nebo skupiny do nového adresáře. Tento nový adresář slouží jako falešný kořenový adresář pro naše chroot vězení.

Pojďme si projít kroky, které musíte udělat, abyste mohli pomocí příkazu chroot v Linuxu vytvořit chroot jail.

1. Vytvořte adresář

Nejprve začneme vytvořením falešného kořenového adresáře v /home/chroot_jail pomocí příkazu mkdir.

mkdir $home/chroot_jail

Tím se na dané adrese vytvoří adresář, který použijeme pro náš chroot jail. Než však necháme příkaz chroot dělat svou práci, musíme do našeho nového adresáře přidat požadované soubory.

2. Přidat požadované kořenové adresáře

Začneme vytvořením /bin, /lib a /lib64 v našem adresáři vězení. Příkaz k vytvoření těchto adresářů je uveden níže.

mkdir -p $home/chroot_jail/{bin,lib,lib64}

Jak si můžete všimnout, adresáře, které vytváříme v našem virtuálním prostředí, jsou uvedeny ve složených závorkách („{}“).

Nyní použijeme příkaz cd k vytvoření nového kořenového adresáře chroot_jail.

cd $home/chroot_jail

3. Přesunout binární soubory povolených příkazů

Pro tento příklad vytváříme minimalistické prostředí Linuxu. Pojďme použít příkazy bash, ls, rm a touch, abychom byli součástí funkčnosti našeho virtuálního prostředí.

Zkopírujte binární soubory z našeho kořenového adresáře /bin do adresáře /bin našeho chroot_jail. Učiníme tak pomocí příkazu cp s tagem -v (verbose), abychom viděli, co se v danou chvíli kopíruje.

cp -v /bin/{bash,touch,ls,rm} $home/chroot_jail

Jak vidíte, binární soubory, které chceme zkopírovat, jsou uvedeny ve složených závorkách. Soubory z daných binárních souborů byly nyní zkopírovány do našeho nového adresáře chroot jail.

4. Řešení závislostí příkazů

Ale tyto binární soubory budou mít závislosti. Závislosti pro bash lze nalézt pomocí příkazu ldd.

ldd /bin/bash

Nyní použijeme příkaz cp k pečlivému zkopírování adresářů do našeho chroot jail jeden po druhém. Měli bychom se ujistit, že zkopírujeme všechny knihovny závislostí, jinak naše chroot vězení nebude fungovat správně. Nahraďte část adresáři oddělenými čárkami.

cp -v {<List dependencies here>} $home/chroot_jail/lib64

Tyto kroky zopakujeme pro všechny příkazy, které chceme povolit v chroot vězení. Najděte knihovny závislostí a zkopírujte je do adresáře chroot_jail.

5. Přepnutí do nového kořenového adresáře

Nyní nám zbývá pouze změnit kořenový adresář našeho chrootového vězení na nový falešný adresář, který jsme právě vytvořili.

Chcete-li změnit adresář a zadat bash, aby se spouštěl jako aplikace, kterou spouštíme jako shell pro naše virtualizované prostředí, použijeme následující příkaz.

sudo chroot $home/chroot_jail/bin/bash

Pro pokračování můžete být vyzváni k zadání uživatelského hesla. V takovém případě zadejte své uživatelské heslo a příkaz bude proveden.

Pokud jste provedli všechny kroky správně, měli byste očekávat, že na obrazovce uvidíte výstup podobný následujícímu.

Jak můžete vidět na snímku obrazovky, bash verze 4.4 nyní běží jako shell pro naše chroot vězení.

Nyní bylo vytvořeno naše minimalistické virtuální linuxové prostředí a je připraveno k použití. Můžeme komunikovat s virtuálním prostředím pomocí bash jako běžný systém Linux.

Závěr

Příkaz chroot v Linuxu je jednoduchý, ale účinný příkaz v sadě nástrojů uživatele Linuxu. Jeho schopnost vytvářet virtualizované prostředí bez potřeby jakéhokoli monitorovacího softwaru, jak to vidíme u virtuálních strojů, z něj dělá lehkou alternativu pro toto použití.

Tento tutoriál vám měl pomoci porozumět tomu, co je chroot, a ukázat vám, jak vytvořit jednoduchý chroot vězení. Pokud máte nějaké dotazy, zpětnou vazbu nebo návrhy, neváhejte se na nás obrátit v komentářích níže.


Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. Zvládněte příkaz Linux ls

  3. 8 Praktické příklady příkazu Linux Xargs pro začátečníky

  1. 5 Praktické příklady příkazu dd v Linuxu

  2. Průvodce linuxovým příkazem „Najít“.

  3. Průvodce příkazem Linux „Top“.

  1. 8 tipů pro příkazový řádek Linuxu

  2. Tipy pro použití příkazu top v Linuxu

  3. Praktické příklady příkazu Unzip v Linuxu