Debian

Cum se folosește chroot în Debian 10

Cum se folosește chroot în Debian 10
Într-un mediu de testare, de multe ori trebuie să testăm anumite aplicații pentru a le preveni să deterioreze sau să spioneze restul sistemului. Există diferite instrumente disponibile pentru sandboxing un program și prevenirea acestuia de a afecta restul sistemului, cum ar fi VirtualBox, VMware, Xen, KVM, etc. Cu toate acestea, doar pentru o singură sau câteva aplicații, sandbox-ul unui întreg sistem de operare nu pare practic.

Pentru sistemul de operare Linux, există un instrument disponibil, cunoscut sub numele de chroot, care oferă un mod mai ușor și mai rapid de sandboxing a unei aplicații. Cu chroot, puteți instala și testa orice aplicație fără a afecta restul sistemului.

Acest articol va explica cum să utilizați chroot în Debian 10 Buster, împreună cu câteva exemple. Pentru explicații, vom crea un mediu chroot pentru bash și unele dintre comenzi, cum ar fi comenzile „ls”, „ip” și „pwd”.

Ce este chroot?

Instrumentul chroot este o comandă din Linux care schimbă directorul rădăcină al unei aplicații într-un alt director. Procesele care rulează în acest nou director rădăcină nu pot accesa fișierele din afara acestuia. Prin urmare, izolează operațiunile aplicațiilor de restul sistemului.

Cum funcționează chroot?

Chroot funcționează prin copierea aplicației și a tuturor executabilelor și dependențelor sale din directorul rădăcină alternativ. Apoi rulează aplicația din acest director rădăcină alternativ, determinând aplicația să o considere drept directorul rădăcină original. Directorul rădăcină este cel mai de sus director din ierarhie și nicio aplicație nu poate ajunge mai sus decât acest director, așa că chroot izolează aplicația de restul sistemului.

Cazuri de utilizare

Sintaxă

Următoarea este sintaxa de bază pentru comanda chroot:

$ chroot comanda

Urmați pașii de mai jos pentru a utiliza comanda chroot în Debian pentru a configura un mediu chroot.

1. Creați un director rădăcină alternativ

Mai întâi, creați un director rădăcină alternativ pentru a fi utilizat pentru mediul chroot.

$ sudo mkdir ~ / new_root

Comanda de mai sus va crea fișierul rădăcină_ nouă director sub Acasă director, care va fi folosit ca director rădăcină în mediul chroot.

2. Adăugați directoare esențiale

Creați directorele „bin”, „lib” și „lib64” sub ~ / rădăcină_ nouă director:

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

3. Copiați programele binare

Tot ce este necesar pentru a rula o aplicație în mediul chroot trebuie să fie în directorul rădăcină alternativ. În acest articol, vom crea un mediu chroot pentru bash și câteva comenzi, inclusiv comenzile „ls”, „ip” și „pwd”. Prin urmare, vom copia binarele din /cos director către alternativ ~ / new_root / bin director. Pentru a localiza binarele comenzilor, utilizați comanda care:

$ care bash ls ip pwd

Apoi, copiați binarele comenzilor în ~ / new_root / bin director.

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

4. Copiați dependențele programului

De asemenea, va trebui să ne dăm seama de ce dependențe are nevoie programul nostru. Mai întâi, va trebui să găsim care sunt aceste dependențe și apoi le vom copia în directorul ~ / new_root / lib.

Copierea dependențelor pentru bash

Mai întâi, aflați dependențele pentru programul bash:

$ ldd / bin / bash

Apoi, copiați aceste dependențe în ~ / rădăcină_ nouă / lib director.

$ cp -v / lib / x86_64-linux-gnu / libtinfo.asa de.6, libdl.asa de.2, libc.asa de.6 ~ / rădăcină_ nouă / lib

Pentru fișierele / lib64, copiați-le în fișierul ~ / rădăcină_ nouă / lib64 director.

$ cp -v / lib64 / ld-linux-x86-64.asa de.2 ~ / rădăcină_ nouă / lib64

Copiați dependențele pentru ls Command

Mai întâi, aflați dependențele pentru comanda ls:

$ ldd / bin / ls

Apoi, copiați aceste dependențe în ~ / rădăcină_ nouă / lib director.

$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.asa de.1, libc.asa de.6, libpcre.asa de.3,
libdl.asa de.2, libpthread.asa de.0 / lib64 / ld-linux-x86-64.asa de.2 ~ / rădăcină_ nouă / lib

Pentru fișierele / lib64, copiați-le în fișierul ~ / rădăcină_ nouă / lib64 director.

$ sudo cp -v / lib64 / ld-linux-x86-64.asa de.2 ~ / rădăcină_ nouă / lib64

Copiați dependențele pentru comanda ip

Mai întâi, aflați dependențele pentru comanda ip:

$ ldd / bin / ip

Apoi, copiați aceste dependențe în ~ / rădăcină_ nouă / lib director.

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

Pentru fișierele / lib64, copiați-le în fișierul ~ / rădăcină_ nouă / lib64 director.

$ sudo cp -v / lib64 / ld-linux-x86-64.asa de.2 ~ / rădăcină_ nouă / lib64

Copiați dependențele pentru comanda pwd

Mai întâi, aflați dependențele pentru comanda pwd:

$ ldd / bin / pwd

Apoi, copiați aceste dependențe în ~ / rădăcină_ nouă / lib director.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.asa de.6 ~ / rădăcină_ nouă / lib

Pentru fișierele / lib64, copiați-le în fișierul ~ / rădăcină_ nouă / lib64 director.

$ sudo cp -v / lib64 / ld-linux-x86-64.asa de.2 ~ / rădăcină_ nouă / lib64

Pentru a vizualiza toate directoarele din directorul rădăcină alternativ, utilizați următoarea comandă:

$ ls -R

5. Treceți la Directorul rădăcină alternativă

Acum suntem în sfârșit pregătiți să trecem la noul nostru mediu chroot. Pentru a schimba directorul rădăcină, rulați următoarea comandă în shell cu privilegii de rădăcină:

$ sudo chroot ~ / new_root / bin / bash

Unde ~ / rădăcină_ nouă este directorul nostru rădăcină alternativ și / bin / bash este aplicația pe care am folosit-o pentru a configura mediul chroot.

După executarea comenzii de mai sus, veți vedea că promptul bash s-a schimbat în bash-x.y care în cazul nostru este bash-5.0 (unde 5.0 este numărul versiunii bash).

Notă: este posibil să întâlniți următoarea eroare după ce ați executat comanda chroot, așa cum am făcut:

Dacă apare această eroare, verificați dacă ați adăugat toate bibliotecile și executabilele aferente programului solicitat în noul director rădăcină.

După ce ați intrat în mediul chroot, veți putea accesa numai fișierul din acesta. Încercați să rulați comenzile pe care le-ați configurat pentru mediul dvs. chroot, inclusiv câteva comenzi încorporate. Puteți găsi comenzile încorporate executând Ajutor comandă în shell.

Puteți vedea că am încercat comenzile „ls”, „pw” și „ip” și toate au reușit. Dacă executăm orice altă comandă decât aceste trei comenzi și comenzile încorporate, comanda va eșua, deoarece nu am configurat-o pentru mediul chroot. După cum puteți vedea în următoarea captură de ecran, am încercat să rulăm comenzile „touch”, „ping” și „clear” și toate au eșuat.

6. Ieșiți din chroot

Pentru a ieși din mediul chroot, utilizați Ieșire comanda.

Concluzie

În acest articol, ați aflat ce este chroot și cum funcționează în Linux. Acest articol vă arată pas cu pas cum să utilizați chroot în Debian 10 Buster pentru a crea un mediu chroot pentru bash și alte comenzi. Acum, ar trebui să vă simțiți confortabil folosind comanda chroot pentru a schimba directorul rădăcină al unui proces și subprocesele acestuia și izolându-le de restul sistemului.

OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...