View in Telegram
Слышали про chroot? Chroot (change root) - это утилита, которая используется для того, чтобы создать закрытое окружение "тюрьму", в которой программа будет видеть определенную часть файловой системы, как корневую '/'. Это похоже на создание миниатюрного "сейфа" или "контейнера" для запуска приложений. В качестве примера можете вспомнить тот же Docker. Под капотом chroot использует одноименный системный вызов и в некоторых ситуациях может пригодиться, как дополнительный элемент безопасности, который позволит ограничить набор каталогов и файлов, доступных программе. Системный вызов chroot() Каждый процесс обладает корневым каталогом — он представляет собой стартовую точку, от которой интерпретируются абсолютные имена путей, начинающиеся с символа '/'. По умолчанию данным каталогом является реальный корневой каталог файловой системы. Иногда бывает удобно, чтобы процесс изменил свой корневой каталог. Это может реализовать с помощью системного вызова chroot(). Системный вызов chroot() изменяет корневой каталог процесса на каталог, указанный в аргументе pathname:
#include <unistd.h>
int chroot(const char *pathname);
Затем все абсолютные имена путей интерпретируются, как начинающиеся с указанного местоположения в файловой системе. Иногда это называют заключением в клетку chroot, поскольку программа оказывается замкнутой внутри некоторой части файловой системы. Моменты, которые стоит учитывать при работе с chroot Следует 100% помнить, что вызов chroot() не меняет текущий рабочий каталог процесса. Для обеспечения полной безопасности, либо перед, либо после chroot() необходимо выполнить вызов chdir(), иначе процесс сможет использовать относительные пути для доступа к ресурсам вне клетки. Также, при переходе в пространство chroot, вы можете столкнуться с тем, что ничего не работает) Это и не удивительно, как оболочка будет выполнять команды, которых для нее просто не существует... Для решения проблемы вам может понадобиться перенести ряд библиотек и программ из "реальной" корневой системы в имитированную либо использовать команду debootstrap, но это уже отдельная история) Linux++ | IT-Образование
Love Center
Love Center
Find friends or serious relationships easily