Есть ли какие-либо предостережения при использовании chroot?

$ sudo pacman -S mesa-demos
$ glxinfo | grep "OpenGL version"
0
30.08.2016, 21:37
2 ответа

chroot не является контейнером и не изолирует процесс полностью от остальной системы. Если вы смонтируете / proc в вашем chroot-каталоге, процесс, запущенный в этом chroot-каталоге, сможет видеть процессы, выполняющиеся за пределами вашего chroot-каталога.

Тем не менее, если вы не возражаете, chroot разработан для обработки именно тех случаев, которые вы описываете. Фактически, до поддержки многоархитектурности в Debian рекомендуемый способ запуска 32-битных приложений в 64-битной системе заключался в создании 32-битного chroot и установке минимальной 32-битной базы Debian.

1
28.01.2020, 02:27

Chroot не является контейнером, он просто изменяет представление файловой системы. Сеть все та же, устройства все те же, pids все те же, uid все те же, root все тот же root.

Это означает, что действия, предпринятые в chroot, могут повлиять на систему в целом. Если вы запускаете демон в chroot и он привязывается к порту, то он будет занимать этот порт во всей системе, а не только в chroot. Если вы (или скрипт )используете killlall в chroot, это также уничтожит процессы вне chroot.

В частности, установка/обновление пакетов в chroot может привести к непреднамеренному запуску демонов и/или сбою процессов установки из-за невозможности запуска демонов. Плохо написанный сценарий может даже убить демона в хост-системе до запуска версии в chroot, что приведет к большой путанице (. Я уверен, что много лет назад у меня был по крайней мере один случай, когда электронные письма отправлялись на 127.0.0.1 :. ] 25, казалось, никуда не делись, и я, наконец, обнаружил, что они обрабатываются MTA в chroot, настроенном для «только локальной почты» ).

В некоторых дистрибутивах есть механизмы для остановки установки пакетов в chroot, запускающем демонов, но детали, очевидно, -зависят от дистрибутива.

2
28.01.2020, 02:27

Теги

Похожие вопросы