Debian

Как да използвам chroot в Debian 10

Как да използвам chroot в Debian 10
В среда за тестване често ни се налага да изолираме определени приложения, за да ги предпазим от повреда или подслушване на останалата част от системата. Налични са различни инструменти за изолиране на програма и предотвратяването й да повлияе на останалата част от системата, като VirtualBox, VMware, Xen, KVM и т.н. Въпреки това, само за едно или няколко приложения, изолирането на цяла ОС не изглежда практично.

За Linux OS има инструмент, известен като chroot, който осигурява по-лесен и бърз начин за изолиране на приложение. С chroot можете да инсталирате и тествате всяко приложение, без да засягате останалата част от системата.

Тази статия ще обясни как да използвате chroot в Debian 10 Buster, заедно с няколко примера. За обяснение ще създадем chroot среда за bash и някои от командите, като командите „ls“, „ip“ и „pwd“.

Какво е chroot?

Инструментът chroot е команда в Linux, която променя основната директория на приложението в друга директория. Процесите, изпълнявани в тази нова коренна директория, не могат да имат достъп до файловете извън нея. Следователно, той изолира операциите на приложенията от останалата част на системата.

Как работи chroot?

Chroot работи чрез копиране на приложението и всички негови изпълними файлове и зависимости в алтернативната коренна директория. След това изпълнява приложението от тази алтернативна коренна директория, което кара приложението да го разглежда като оригиналната коренна директория. Основната директория е най-горната директория в йерархията и нито едно приложение не може да достигне по-високо от тази директория, така че по този начин chroot изолира приложението от останалата част на системата.

Случаи на употреба

Синтаксис

По-долу е основният синтаксис на командата chroot:

$ chroot команда

Следвайте стъпките по-долу, за да използвате командата chroot в Debian за настройка на среда за chroot.

1. Създайте алтернативна коренна директория

Първо, създайте алтернативна коренна директория, която да се използва за chroot средата.

$ sudo mkdir ~ / new_root

Горната команда ще създаде new_root директория под У дома директория, която ще се използва като основна директория в chroot средата.

2. Добавете основни директории

Създайте директориите „bin“, „lib“ и „lib64“ под ~ / new_root директория:

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

3. Копиране на двоични файлове на програмата

Всичко, необходимо за стартиране на приложение в chroot средата, трябва да бъде в алтернативната коренна директория. В тази статия ще създадем chroot среда за bash и някои команди, включително командите „ls“, „ip“ и „pwd“. Затова ще копираме двоичните файлове от / кошче директория към алтернативния ~ / new_root / bin директория. За да намерите двоичните файлове на командите, използвайте коя команда:

$ който е bash ls ip pwd

След това копирайте двоичните файлове на командите в ~ / new_root / bin директория.

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

4. Копирайте програмните зависимости

Също така ще трябва да разберем от какви зависимости се нуждае нашата програма. Първо ще трябва да намерим какви са тези зависимости и след това ще ги копираме в ~ / new_root / lib директория.

Копиране на зависимости за bash

Първо, разберете зависимостите за програмата bash:

$ ldd / bin / bash

След това копирайте тези зависимости в ~ / new_root / lib директория.

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

За файловете / lib64 ги копирайте в ~ / new_root / lib64 директория.

$ cp -v / lib64 / ld-linux-x86-64.така.2 ~ / new_root / lib64

Копирайте зависимости за ls Command

Първо, разберете зависимостите за командата ls:

$ ldd / bin / ls

След това копирайте тези зависимости в ~ / new_root / lib директория.

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

За файловете / lib64 ги копирайте в ~ / new_root / lib64 директория.

$ sudo cp -v / lib64 / ld-linux-x86-64.така.2 ~ / new_root / lib64

Копирайте зависимости за ip команда

Първо, разберете зависимостите за командата ip:

$ ldd / bin / ip

След това копирайте тези зависимости в ~ / new_root / lib директория.

$ cp -v / lib / x86_64-linux
gnu / libselinux.така.1, клевета.така.1, libmnl.така.0, libcap.така.2, libdl.така.2, libc.така.6,
libpcre.така.3, libz.така.1, libpthread.така.0 ~ / new_root / lib

За файловете / lib64 ги копирайте в ~ / new_root / lib64 директория.

$ sudo cp -v / lib64 / ld-linux-x86-64.така.2 ~ / new_root / lib64

Копиране на зависимости за pwd команда

Първо, разберете зависимостите за командата pwd:

$ ldd / bin / pwd

След това копирайте тези зависимости в ~ / new_root / lib директория.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.така.6 ~ / new_root / lib

За файловете / lib64 ги копирайте в ~ / new_root / lib64 директория.

$ sudo cp -v / lib64 / ld-linux-x86-64.така.2 ~ / new_root / lib64

За да видите всички директории в алтернативната коренна директория, използвайте следната команда:

$ ls -R

5. Превключете към Алтернативна коренна директория

Сега най-накрая сме готови да преминем към новата ни chroot среда. За да промените главната директория, изпълнете следната команда в черупката с root права:

$ sudo chroot ~ / new_root / bin / bash

Където ~ / new_root е нашата алтернативна основна директория и / bin / bash е приложението, което използвахме за настройка на chroot средата.

След като изпълните горната команда, ще видите, че подканата на bash се е променила на баш-х.у което в нашия случай е баш-5.0 (където 5.0 е номерът на версията на bash).

Забележка: може да срещнете следната грешка след стартиране на командата chroot, както направих:

Ако възникне тази грешка, проверете дали сте добавили всички библиотеки и изпълними файлове, свързани с необходимата програма, към новата коренна директория.

След като влезете в chroot средата, ще имате достъп само до файла в нея. Опитайте да изпълните командите, които сте настроили за вашата chroot среда, включително някои вградени команди. Можете да намерите вградените команди, като стартирате помогне команда в черупката.

Виждате, че сме изпробвали командите „ls“, „pw“ и „ip“ и всички те са успели. Ако изпълним която и да е команда, различна от тези три команди и вградените команди, командата ще се провали, тъй като не сме я настроили за chroot средата. Както можете да видите на следващата екранна снимка, ние се опитахме да изпълним командите „touch“, „ping“ и „clear“ и всички те не успяха.

6. Излезте от chroot

За да излезете от chroot средата, използвайте изход команда.

Заключение

В тази статия сте научили какво е chroot и как работи в Linux. Тази статия ви показа стъпка по стъпка как да използвате chroot в Debian 10 Buster, за да създадете chroot среда за bash и други команди. Сега трябва да ви е удобно да използвате командата chroot, за да промените главната директория на даден процес и неговите подпроцеси и да ги изолирате от останалата част на системата.

Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...
Как да увеличите FPS в Linux?
FPS означава Кадри в секунда. Задачата на FPS е да измерва честотата на кадрите при възпроизвеждане на видео или игрални изпълнения. С прости думи бро...
Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...