img

Что такое chroot jail и как этим пользоваться?

Термин chroot jail появился еще в 1992 году но часто используется сегодня. Что же это означает и для чего используется эта операция?


Что такое chroot jail?

Chroot (сокращение от change root) - это операция Unix, которая изменяет видимый корневой каталог на тот, который задан пользователем.

Любой процесс, который вы запускаете после операции chroot, имеет доступ только к новому определенному корневому каталогу и его подкаталогам. Эта операция широко известна как chroot jail, поскольку эти процессы не могут читать или писать вне нового корневого каталога.


Для чего используется chroot jail?

Chroot jail используется для создания ограниченной «песочницы» для запуска процесса. Это означает, что процесс не может злонамеренно изменять данные за пределами предписанного дерева каталогов.

Еще одно применение chroot jail - это замена виртуальным машинам. Этот метод называется виртуализацией на уровне ядра и требует меньше ресурсов, чем виртуальные машины. Эта операция позволяет пользователям создавать несколько изолированных инстансов в одной системе.


Как использовать chroot jail

Рассмотрим на примере как создать и настроить chroot jail, чтобы он мог запускать команды bash и ls.

1. Создайте новый каталог с именем chroot_jail:

mkdir chroot_jail

Если мы попытаемся использовать chroot на этом каталоге, мы получим следующий вывод:

chroot chroot_jail

Вы должны включить команду bash, прежде чем сможете использовать chroot на новом каталоге. Для этого необходимо скопировать командный файл и все связанные библиотеки в новый корневой каталог.

2. Создайте новое дерево подкаталогов внутри chroot_jail:

mkdir -p chroot_jail / bin chroot_jail / lib64 / x86_64-linux-gnu chroot_jail / lib / x86_64-linux-gnu 

В этих подкаталогах будут храниться все необходимые элементы команд bash и ls.

3. Использование команды cp с командой which позволяет копировать команды bash и ls без указания пути, из которого вы копируете.

Для этого используйте:

cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/
Примечание. Если ваша команда bash или ls имеет псевдоним, вам необходимо снять его перед копированием. Используйте unalias [command], где [command] - это имя команды, которую вы хотите удалить.

4. Чтобы bash и ls работали в новой корневой папке, добавьте все связанные библиотеки в chroot_jail/libraries. Используйте команду ldd, чтобы узнать, какие библиотеки связаны с какой командой:

ldd $(which bash)
ldd $(which ls)  
ldd

5. Скопируйте соответствующие библиотеки в подкаталоги lib и lib64.

Для команды bash:

cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/

Для команды ls:

cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/  

6. Используйте команду chroot, чтобы изменить root на каталог chroot_jail:

sudo chroot chroot_jail
sudo chroot chroot_jail
Примечание. При изменении корневого каталога на каталог chroot_jail запускается новый экземпляр оболочки bash.

Используйте команду ls, чтобы вывести список всех файлов и каталогов в новом корневом дереве каталогов:

ls -R
ls -R

7. Как только вы закончите использовать новую корневую папку, выйдите из оболочки:

exit

Заключение

После выполнения этого руководства вы сможете настроить chroot jail вместе с необходимыми ресурсами для запуска процессов и команд в новом корневом каталоге.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Еще по теме:
img
В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.
img
В этой статье обсудим гипервизоры — важные компоненты процесса виртуализации серверов, как они работают и какие бывают типы.
img
В этой статье мы рассмотрим, как работают различные системные вызовы, разберемся в их функциях, а также постараемся сделать работу вашей системы более безопасной и предсказуемой.
img
Статья объясняет, что такое SWAP-память, как она работает, ее преимущества и недостатки, а также как управлять объемом SWAP-пространства на разных ОС.
img
Абсолютные и относительные пути помогают компьютеру находить файлы и каталоги. Узнайте, как использовать их в Windows и Linux, а также создавать удобные пути в HTML.