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 вместе с необходимыми ресурсами для запуска процессов и команд в новом корневом каталоге.

Ссылка
скопирована
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
На базе нашего опыта и статей мы сделалем еще один полезный документ: руководство администратора по Linux/Unix системам. В докум
img
Удаленный доступ к системам давно стал необходимостью, и сейчас с трудом можно представить, что было бы, если бы мы не могли упр
img
Все мы любим компьютеры. Они могут делать столько удивительных вещей. За пару десятилетий компьютеры произвели самую настоящую р
img
Архитектуры х64 и х86 являются одними из наиболее широко используемых типов архитектур системы команд (АСК или ISA – Instr
img
Gzip – один из самых популярных алгоритмов сжатия, который позволяет сократить размер файла, но при этом сохранить исходный файл
img
Интернет может быть опасным. Спросите любого хорошего IT-специалиста, и он вам обязательно расскажет о важности обеспечения безо
Комментарии
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59