Debian

Як використовувати chroot у Debian 10

Як використовувати chroot у Debian 10
У середовищі тестування нам часто потрібно виділяти певні програми, щоб запобігти їх пошкодженню або перегляду решти системи. Доступні різні інструменти для тестування програми та запобігання її впливу на решту системи, такі як VirtualBox, VMware, Xen, KVM тощо. Однак лише для однієї чи кількох програм виділення песочниці для цілої ОС не здається практичним.

Для ОС Linux існує інструмент, відомий як 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”. Тому ми скопіюємо двійкові файли з / bin каталог до альтернативного ~ / 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

Спочатку з’ясуйте залежності для команди 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, libelf.так.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. Щоб змінити кореневий каталог, запустіть наступну команду в оболонці з кореневими правами:

$ sudo chroot ~ / new_root / bin / bash

Де ~ / new_root - це наш альтернативний кореневий каталог і / bin / bash - це програма, яку ми використовували для налаштування середовища chroot.

Після запуску наведеної вище команди ви побачите, що підказка bash змінилася на bash-x.р що в нашому випадку є баш-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, щоб змінити кореневий каталог процесу та його підпроцеси та ізолювати їх від решти системи.

Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...