Василий Озеров
Chroot и Jail – два разных способа изолировать процесс от основной
файловой системы. Где и когда их использовать? Каковы их преимущества
и недостатки?
Большинство сервисов, работающих в системе, имеют возможность просматривать
структуру всей файловой системы сервера. Это не всегда безопасно для
информации, хранящейся на сервере. Для того чтобы не допустить кражу секретной
информации, были придуманы способы, позволяющие изолировать процесс: chroot и jail.
Chroot
Chroot – операция изменения корневого каталога для текущего процесса и всех
его потомков – поможет увеличить безопасность системы и протестировать новое ПО.
При увеличении безопасности процесса
принципиальное значение имеют свойства процесса, а именно: с какими
привилегиями он работает. Если процесс был запущен от имени обычного
пользователя, то все проблемы с безопасностью решаются грамотной
установкой прав на файлы и каталоги. Процесс, запущенный от имени суперпользователя,
имеет абсолютные привилегии в системе, благодаря которым может выполнять любые
действия. Для того чтобы снизить возможный ущерб от взломанного сервиса,
следует изолировать его от основной системы, используя chroot. Тогда сервис
будет иметь доступ только к той части файловой системы, в которой он
«заперт».
Используя chroot для тестирования ПО, вы можете
не бояться за основную систему, ведь процесс не может получить к ней доступ, не
говоря уже об удалении важных файлов.
Для того чтобы перенести программу с одной
системы на другую, не имея исходных кодов, достаточно перенести все библиотеки,
нужные для работы программы, и запустить саму программу в chroot-окружении.
Думаю, преимущества chroot очевидны.
Отмечу недостатки chroot: