chroot “тюрьма” - что это и как я использую его?

Сервис сборки openSUSE (OBS) и застежка-молния являются несколькими причинами, я предпочитаю об/мин по deb с точки зрения поставщика программного блока и пользователя. Zypper проделал длинный путь и довольно блин быстр. OBS, хотя это может обработать debs, действительно хорош когда дело доходит до упаковки rpms для различных платформ, таких как openSUSE, SLE, RHEL, песни, мягкая фетровая шляпа, mandriva, и т.д.

104
05.10.2010, 18:06
4 ответа

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

Идея состоит в том, что Вы создаете дерево каталогов, где Вы копируете или связываетесь во всех системных файлах, необходимых, чтобы процесс работал. Вы затем используете chroot() системный вызов для изменения корневого каталога, чтобы быть в основе этого нового дерева и запустить процесс, работающий в этом chroot'd среда. Так как это не может на самом деле сослаться на пути вне измененного корня, это не может выполнить операции (чтение-запись и т.д.) злонамеренно на тех местоположениях.

На Linux, с помощью связывания монтирования отличный способ заполнить chroot дерево. Используя это, можно вытянуть в папках как /lib и /usr/lib не сдерживаясь /usr, например. Просто свяжите деревья каталогов, которые Вы хотите к каталогам, которые Вы создаете в каталоге тюрьмы.

93
27.01.2020, 19:29
  • 1
    Ваш ответ является большим. Одной вещью упомянуть, хотя, chroot не является безопасный механизм (процесс может убежать из тюрьмы, если это становится корнем и иногда даже если не). Реальные тюрьмы могут быть осуществлены с freebsd тюрьмами и т.п.. Посмотрите этот en.wikipedia.org/wiki/FreeBSD_jail#Similar_technologies –  nc3b 10.08.2010, 23:30
  • 2
    Хинду процесс установки использует chroot, таким образом, можно установить новую ОС перед установкой GRUB и ядра Linux и т.д. –  Chris Huang-Leaver 10.08.2010, 23:38
  • 3
    Смотрите на firejail для полной заключенной в тюрьму оболочки с помощью всех пространств имен Linux. Существует deb и доступные RPM-пакеты. Обычно я рекомендовал бы ядро 3.18 или позже, тем не менее, из-за известной проблемы с неспособностью установить новое программное обеспечение или сделать управление пользователями когда firejail работает. –  CivFan 17.06.2016, 19:02
  • 4
    Большой ответ! - хотя некоторые основные примеры были бы хороши видеть. –  Gabriel Staples 30.01.2018, 08:11

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

-- foo
    -- bar
    -- baz
-- bazz

Если Вы chroot foo и сделайте ls /, Вы будете видеть:

-- bar
-- baz

До ls (и любые другие инструменты, которые Вы выполняете) затронуты, это - единственные каталоги в файловой системе. Причиной "тюрьма" является неправильное употребление, chroot не предназначается, чтобы вынудить программу остаться в той моделируемой файловой системе; программа, которая знает, что это находится в chroot "тюрьме", может довольно легко выйти, таким образом, Вы не должны использовать chroot как меры безопасности, чтобы препятствовать тому, чтобы программа изменила файлы вне Вашей моделируемой файловой системы

53
27.01.2020, 19:29
  • 1
    Было бы полезно иметь пример того, как выйти из a chroot "тюрьма". Случай, который я видел, требует возрастания к полномочиям пользователя root. Действительно ли трудно предотвратить процесс, наращивающий себя к полномочиям пользователя root? А-ч –  CivFan 17.06.2016, 19:09
  • 2
    Это - все еще "заключение", таким образом, "тюрьма" является хорошей стенографией. Был бы "Поле включения уровня 3" быть лучше?! –  MikeW 10.11.2016, 12:58
  • 3
    Термин прибывает из тюрем FreeBSD. Тюрьмы основаны на chroot. Тюрьмы были предназначены для решения проблем безопасности chroot не делает. Поэтому люди часто перепутывают chroot и jails означать то же самое. Они не делают. Термин "тюрьма", как говорят, вводится Bill Cheswick, когда он настроил ловушку для ловли взломщика: csrc.nist.gov/publications/secpubs/berferd.pdf –  BugHunterUK 13.06.2017, 22:03
  • 4
    Также - Вы вещь, не использует chroot jail хорошая идея в моем случае? –  Shafizadeh 12.03.2018, 12:07

В основном Вы просто изменяете корневой каталог своей среды. Так

/

становится

/some-jail/ (or whatever directory you want)

Когда доступы к приложению / они доберутся/some-jail/. Также приложение не может убежать/some-jail/, таким образом, Вы знаете, что оно не получит доступ ни к чему больше на Вашей машине. Это - очень простой способ сказать 'эй, что можно только получить доступ к этим вещам, которые я даю Вам, и Вы не можете получить доступ ни к чему больше в системе.

12
27.01.2020, 19:29

«Когда и почему я могу его использовать?»

Одно из применений - тестирование скриптов (время загрузки и другие), которые делают ссылки на абсолютные пути или которые запускают команды, которые вы, возможно, захотите перехватить и зарегистрировать (и, возможно, не выполнять их) - в среде, где вы не хотите, чтобы эти команды действительно работали в вашей рабочей среде.

Например, у меня есть встроенное устройство под управлением Linux, я хотел бы проверить работу некоторого bash без а) запуска его на реальном устройстве (так как у меня есть лучшие инструменты на моем рабочем столе, и я не хочу чтобы заблокировать устройство) б) запустить его в реальном режиме на моем рабочем столе (так как я не хочу, чтобы моя настольная система испортилась)

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

(Конечно, вы можете работать в QEMU, Docker или виртуальной машине, но это потребует создания образа виртуальной машины и т. Д. - гораздо больше работы)

6
27.01.2020, 19:29

Теги

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