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 каталог под Дом каталог, который будет использоваться в качестве корневого каталога в среде chroot.

2. Добавить необходимые каталоги

Создайте каталоги «bin», «lib» и «lib64» в папке ~ / новый_корень каталог:

$ sudo mkdir -p ~ / новый_корень / bin, lib, lib64

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

Все, что требуется для запуска приложения в среде chroot, должно находиться в альтернативном корневом каталоге. В этой статье мы создадим среду chroot для bash и некоторых команд, включая команды «ls», «ip» и «pwd». Поэтому мы скопируем двоичные файлы из / bin каталог в альтернативный ~ / новый_корень / bin каталог. Чтобы найти двоичные файлы команд, используйте команду which:

$ какой bash ls ip pwd

Затем скопируйте двоичные файлы команд в ~ / новый_корень / bin каталог.

$ sudo cp -v / bin / bash, ls, ip, pwd ~ / новый_корень / bin

4. Копировать зависимости программы

Нам также нужно будет выяснить, какие зависимости нужны нашей программе. Сначала нам нужно найти, что это за зависимости, а затем мы скопируем их в каталог ~ / new_root / lib.

Копирование зависимостей для bash

Сначала выясните зависимости для программы bash:

$ ldd / bin / bash

Затем скопируйте эти зависимости в ~ / новый_корень / библиотека каталог.

$ cp -v / lib / x86_64-linux-gnu / libtinfo.так.6, libdl.так.2, libc.так.6 ~ / новый_корень / библиотека

Для файлов / lib64 скопируйте их в папку ~ / новый_корень / lib64 каталог.

$ cp -v / lib64 / ld-linux-x86-64.так.2 ~ / новый_корень / lib64

Скопируйте зависимости для команды ls

Сначала выясните зависимости для команды ls:

$ ldd / bin / ls

Затем скопируйте эти зависимости в ~ / новый_корень / библиотека каталог.

$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.так.1, libc.так.6, libpcre.так.3,
libdl.так.2, libpthread.так.0 / lib64 / ld-linux-x86-64.так.2 ~ / новый_корень / библиотека

Для файлов / lib64 скопируйте их в папку ~ / новый_корень / lib64 каталог.

$ sudo cp -v / lib64 / ld-linux-x86-64.так.2 ~ / новый_корень / lib64

Скопируйте зависимости для команды ip

Сначала выясните зависимости для команды ip:

$ ldd / bin / ip

Затем скопируйте эти зависимости в ~ / новый_корень / библиотека каталог.

$ cp -v / lib / x86_64-Linux
gnu / libselinux.так.1, клевета.так.1, libmnl.так.0, libcap.так.2, libdl.так.2, libc.так.6,
libpcre.так.3, libz.так.1, libpthread.так.0 ~ / новый_корень / библиотека

Для файлов / lib64 скопируйте их в папку ~ / новый_корень / lib64 каталог.

$ sudo cp -v / lib64 / ld-linux-x86-64.так.2 ~ / новый_корень / lib64

Копировать зависимости для команды pwd

Сначала выясните зависимости для команды pwd:

$ ldd / bin / pwd

Затем скопируйте эти зависимости в ~ / новый_корень / библиотека каталог.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.так.6 ~ / новый_корень / библиотека

Для файлов / lib64 скопируйте их в папку ~ / новый_корень / lib64 каталог.

$ sudo cp -v / lib64 / ld-linux-x86-64.так.2 ~ / новый_корень / lib64

Чтобы просмотреть все каталоги в альтернативном корневом каталоге, используйте следующую команду:

$ ls -R

5. Перейти в альтернативный корневой каталог

Теперь мы наконец готовы перейти на нашу новую среду chroot. Чтобы изменить корневой каталог, выполните следующую команду в оболочке с правами root:

$ sudo chroot ~ / новый_корень / bin / bash

Где ~ / новый_корень это наш альтернативный корневой каталог и / 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 для изменения корневого каталога процесса и его подпроцессов и изоляции их от остальной системы.

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...