Debian

Kako uporabljati chroot v Debianu 10

Kako uporabljati chroot v Debianu 10
V preskusnem okolju moramo pogosto preizkusiti nekatere programe, da jim preprečimo, da bi poškodovali ali vohljali po preostalem sistemu. Na voljo so različna orodja za zaščito peska v programu in preprečevanje njegovega vpliva na preostali del sistema, kot so VirtualBox, VMware, Xen, KVM itd. Vendar se samo za eno ali nekaj aplikacij peskovništvo celotnega OS ne zdi praktično.

Za Linux OS je na voljo orodje, znano kot chroot, ki omogoča enostavnejši in hitrejši način uporabe peskovnika v peskovniku. S programom chroot lahko namestite in preizkusite katero koli aplikacijo, ne da bi to vplivalo na preostali del sistema.

Ta članek bo razložil, kako uporabljati chroot v Debian 10 Buster, skupaj z nekaj primeri. Za razlago bomo ustvarili chroot okolje za bash in nekatere ukaze, kot so ukazi "ls", "ip" in "pwd".

Kaj je chroot?

Orodje chroot je ukaz v Linuxu, ki spremeni korenski imenik aplikacije v drug imenik. Procesi, ki se izvajajo v tem novem korenskem imeniku, ne morejo dostopati do datotek zunaj njega. Zato izolira delovanje aplikacij od ostalega sistema.

Kako deluje chroot?

Chroot deluje tako, da kopira aplikacijo in vse izvedljive datoteke ter odvisnosti znotraj nadomestnega korenskega imenika. Nato zažene aplikacijo znotraj tega nadomestnega korenskega imenika, zaradi česar jo aplikacija obravnava kot izvirni korenski imenik. Korenski imenik je najvišji imenik v hierarhiji in nobena aplikacija ne more doseči višje od tega imenika, zato Chroot tako izolira aplikacijo od ostalega sistema.

Uporabite zadeve

Sintaksa

Sledi osnovna sintaksa ukaza chroot:

$ chroot ukaz

Sledite spodnjim korakom, da uporabite ukaz chroot v Debianu za nastavitev okolja chroot.

1. Ustvarite nadomestni korenski imenik

Najprej ustvarite nadomestni korenski imenik, ki se bo uporabljal za okolje chroot.

$ sudo mkdir ~ / new_root

Zgornji ukaz bo ustvaril new_root imenik pod Domov imenik, ki bo uporabljen kot korenski imenik v okolju chroot.

2. Dodajte osnovne imenike

Ustvarite imenike "bin", "lib" in "lib64" pod ~ / new_root imenik:

$ sudo mkdir -p ~ / new_root / bin, lib, lib64

3. Kopirajte dvojiške programe

Vse, kar je potrebno za zagon aplikacije v okolju chroot, mora biti v nadomestnem korenskem imeniku. V tem članku bomo ustvarili chroot okolje za bash in nekatere ukaze, vključno z ukazi "ls", "ip" in "pwd". Zato bomo kopirali binarne datoteke iz / koš v nadomestni imenik ~ / new_root / bin imenik. Če želite poiskati binarne datoteke ukazov, uporabite kateri ukaz:

$ kateri bash je ip pwd

Nato kopirajte binarne datoteke ukazov v ~ / new_root / bin imenik.

$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin

4. Kopiraj programske odvisnosti

Ugotoviti bomo morali tudi, kakšne odvisnosti potrebuje naš program. Najprej bomo morali ugotoviti, katere so te odvisnosti, nato pa jih bomo kopirali v ~ / new_root / lib imenik.

Kopiranje odvisnosti za bash

Najprej ugotovite odvisnosti programa bash:

$ ldd / bin / bash

Nato kopirajte te odvisnosti v ~ / new_root / lib imenik.

$ cp -v / lib / x86_64-linux-gnu / libtinfo.torej.6, libdl.torej.2, libc.torej.6 ~ / new_root / lib

Za datoteke / lib64 jih kopirajte v ~ / new_root / lib64 imenik.

$ cp -v / lib64 / ld-linux-x86-64.torej.2 ~ / new_root / lib64

Kopirajte odvisnosti za ukaz ls

Najprej poiščite odvisnosti za ukaz ls:

$ ldd / bin / ls

Nato kopirajte te odvisnosti v ~ / new_root / lib imenik.

$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.torej.1, libc.torej.6, libpcre.torej.3,
libdl.torej.2, libpthread.torej.0 / lib64 / ld-linux-x86-64.torej.2 ~ / new_root / lib

Za datoteke / lib64 jih kopirajte v ~ / new_root / lib64 imenik.

$ sudo cp -v / lib64 / ld-linux-x86-64.torej.2 ~ / new_root / lib64

Kopirajte odvisnosti za ukaz ip

Najprej poiščite odvisnosti za ukaz ip:

$ ldd / bin / ip

Nato kopirajte te odvisnosti v ~ / new_root / lib imenik.

$ cp -v / lib / x86_64-linux
gnu / libselinux.torej.1, libelf.torej.1, libmnl.torej.0, libcap.torej.2, libdl.torej.2, libc.torej.6,
libpcre.torej.3, libz.torej.1, libpthread.torej.0 ~ / new_root / lib

Za datoteke / lib64 jih kopirajte v ~ / new_root / lib64 imenik.

$ sudo cp -v / lib64 / ld-linux-x86-64.torej.2 ~ / new_root / lib64

Kopirajte odvisnosti za ukaz pwd

Najprej poiščite odvisnosti za ukaz pwd:

$ ldd / bin / pwd

Nato kopirajte te odvisnosti v ~ / new_root / lib imenik.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.torej.6 ~ / new_root / lib

Za datoteke / lib64 jih kopirajte v ~ / new_root / lib64 imenik.

$ sudo cp -v / lib64 / ld-linux-x86-64.torej.2 ~ / new_root / lib64

Če si želite ogledati vse imenike v nadomestnem korenskem imeniku, uporabite naslednji ukaz:

$ ls -R

5. Preklopite na nadomestni korenski imenik

Zdaj smo končno pripravljeni preiti na naše novo chroot okolje. Če želite spremeniti korenski imenik, v lupini s korenskimi privilegiji zaženite naslednji ukaz:

$ sudo chroot ~ / new_root / bin / bash

Kje ~ / new_root je naš nadomestni korenski imenik in / bin / bash je aplikacija, ki smo jo uporabili za nastavitev okolja chroot.

Po zagonu zgornjega ukaza boste videli, da se je poziv bash spremenil v bash-x.y kar je v našem primeru bash-5.0 (kjer 5.0 je številka različice bash).

Opomba: po zagonu ukaza chroot lahko naletite na naslednjo napako, kot sem se:

Če pride do te napake, preverite, ali ste v nov korenski imenik dodali vse knjižnice in izvedljive datoteke, povezane z zahtevanim programom.

Po vstopu v okolje chroot boste lahko dostopali samo do datoteke znotraj njega. Poskusite zagnati ukaze, ki ste jih nastavili za svoje okolje chroot, vključno z nekaterimi vgrajenimi ukazi. Vgrajene ukaze najdete tako, da zaženete pomoč ukaz v lupini.

Vidite, poskusili smo z ukazoma „ls“, „pw“ in „ip“ in vsi so uspeli. Če zaženemo kateri koli ukaz razen teh treh ukazov in vgrajenih ukazov, ukaz ne bo uspel, saj ga nismo nastavili za okolje chroot. Kot lahko vidite na naslednjem posnetku zaslona, ​​smo poskusili zagnati ukaze »touch«, »ping« in »clear« in vsi niso uspeli.

6. Izhod iz chroot

Za izhod iz okolja chroot uporabite izhod ukaz.

Zaključek

V tem članku ste izvedeli, kaj je chroot in kako deluje v Linuxu. Ta članek vam je po korakih pokazal, kako uporabljati chroot v Debian 10 Buster za ustvarjanje chroot okolja za bash in druge ukaze. Zdaj bi vam bilo udobno z ukazom chroot spremeniti korenski imenik procesa in njegove podprocese ter jih izolirati od ostalega sistema.

Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...