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

Мануал

Вступление

Термин chroot jail родился 1992 году и часто используется и сегодня.

Но что означает этот термин и для чего используется эта операция?

В этом руководстве мы рассмотрим основы использования chroot-jail и покажем, как это настроить.

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

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

mkdir chroot_jail

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

chroot chroot_jail

chroot: cannot change root directory to 'chroot_jail: Operation not permitted

1. Создайте новый каталог с именем 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] – это имя команды, которую вы хотите удалить.

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

Используйте команду ldd, чтобы узнать, какие библиотеки связаны с какой командой:

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

5. Скопируйте соответствующие библиотеки в подкаталоги chroot_jail 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:

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

ls -R

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

exit

Заключение

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

Добавить комментарий