Вступление
Термин 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 -R
7. Как только вы закончите использовать новую корневую папку, выйдите из оболочки:
exit
Заключение
После выполнения этого руководства вы сможете настроить chroot jail вместе с необходимыми ресурсами для запуска процессов и команд в новом корневом каталоге.