Зачем мне использовать chroot

13

Этот вопрос: что это такое и как его использовать, относится к тому, что и как использовать chroot.

Чего я не понимаю, так это зачем мне пользоваться chroot. Я понимаю, что он делает, но я не могу вспомнить случай, когда мне нужно его использовать, учитывая тот факт, что это не механизм безопасности или песочница, поскольку ответ указывает: «Вы не должны использовать chrootв качестве безопасности мера, чтобы программа не модифицировала файлы вне вашей имитируемой файловой системы ".

В частности, почему определенный процесс должен отображать подкаталог как корневую файловую систему?

Александру Иримея
источник
иметь больше распределений в одной файловой системе.
Ипор Сирсер
что это обозначает?
Александру Иримея
1
Хотя это не может помешать решительному хакеру вырваться из тюрьмы, оно усложняет его и почти наверняка предотвратит случайный доступ.
Бармар
Если вы хотите создать новую ОС с нуля, это может быть использовано для установки новой среды, независимой от файловой системы хоста. взгляните на проект LFS (Linux с нуля)
chenchuk

Ответы:

13

Существует множество причин для использования изолированной среды, вы можете использовать ее для хранения разных версий одной программы, вы можете использовать ее для симуляции конкретной среды, для тестирования некоторых функций, для создания образов системы, отличной от вашей основной один и т. д.

Википедия может рассказать вам больше о тюрьмах и их использовании.

Оттуда:

Тестирование и разработка . В chroot можно настроить тестовую среду для программного обеспечения, которое в противном случае было бы слишком рискованным для развертывания в производственной системе.

Контроль зависимостей . Программное обеспечение может разрабатываться, создаваться и тестироваться в изолированном пространстве, заполненном только ожидаемыми зависимостями. Это может предотвратить некоторые виды перекоса связей, которые могут возникнуть в результате того, что разработчики создают проекты с различными наборами программных библиотек.

Совместимость . Устаревшее программное обеспечение или программное обеспечение, использующее другой ABI, иногда необходимо запускать в chroot, поскольку их вспомогательные библиотеки или файлы данных в противном случае могут конфликтовать по именам или связываться с библиотеками хост-системы.

Восстановление : Если система перестает загружаться, chroot можно использовать для возврата в поврежденную среду после начальной загрузки из альтернативной корневой файловой системы (например, с установочного носителя или Live CD).

Разделение привилегий : программам разрешается переносить дескрипторы открытых файлов (для файлов, конвейеров и сетевых подключений) в chroot, что может упростить дизайн тюрьмы, избавляя от необходимости оставлять рабочие файлы внутри каталога chroot. Это также упрощает общий порядок запуска потенциально уязвимых частей привилегированной программы в изолированной программной среде, чтобы упреждающим образом содержать уязвимость. Обратите внимание, что chroot не обязательно достаточно, чтобы содержать процесс с привилегиями root.

Альберто Мендес
источник
3
В основном, если вы запускаете набор программ, которые хотят читать / записывать определенные вещи на месте, начиная с /, но вы не хотите испортить вашу существующую систему, chroot полезен, даже если запускать от имени root (то есть, когда это бессмысленно с точки зрения безопасности). Он функционирует как «перенаправитель», который, если вы доверяете программе, полезен.
LawrenceC