Сервис сборки openSUSE (OBS) и застежка-молния являются несколькими причинами, я предпочитаю об/мин по deb с точки зрения поставщика программного блока и пользователя. Zypper проделал длинный путь и довольно блин быстр. OBS, хотя это может обработать debs, действительно хорош когда дело доходит до упаковки rpms для различных платформ, таких как openSUSE, SLE, RHEL, песни, мягкая фетровая шляпа, mandriva, и т.д.
chroot тюрьма является способом изолировать процесс и его детей от остальной части системы. Это должно только использоваться для процессов, которые не работают как корень, поскольку пользователи root могут убежать из тюрьмы очень легко.
Идея состоит в том, что Вы создаете дерево каталогов, где Вы копируете или связываетесь во всех системных файлах, необходимых, чтобы процесс работал. Вы затем используете chroot()
системный вызов для изменения корневого каталога, чтобы быть в основе этого нового дерева и запустить процесс, работающий в этом chroot'd среда. Так как это не может на самом деле сослаться на пути вне измененного корня, это не может выполнить операции (чтение-запись и т.д.) злонамеренно на тех местоположениях.
На Linux, с помощью связывания монтирования отличный способ заполнить chroot дерево. Используя это, можно вытянуть в папках как /lib
и /usr/lib
не сдерживаясь /usr
, например. Просто свяжите деревья каталогов, которые Вы хотите к каталогам, которые Вы создаете в каталоге тюрьмы.
"тюрьма chroot" является неправильным употреблением, которое должно действительно вымереть, но люди продолжают использовать ее. chroot
инструмент, который позволяет Вам моделировать каталог в своей файловой системе как корень файловой системы. Это означает, что у Вас может быть структура папок как:
-- foo
-- bar
-- baz
-- bazz
Если Вы chroot foo
и сделайте ls /
, Вы будете видеть:
-- bar
-- baz
До ls
(и любые другие инструменты, которые Вы выполняете) затронуты, это - единственные каталоги в файловой системе. Причиной "тюрьма" является неправильное употребление, chroot
не предназначается, чтобы вынудить программу остаться в той моделируемой файловой системе; программа, которая знает, что это находится в chroot "тюрьме", может довольно легко выйти, таким образом, Вы не должны использовать chroot
как меры безопасности, чтобы препятствовать тому, чтобы программа изменила файлы вне Вашей моделируемой файловой системы
chroot
"тюрьма". Случай, который я видел, требует возрастания к полномочиям пользователя root. Действительно ли трудно предотвратить процесс, наращивающий себя к полномочиям пользователя root? А-ч
– CivFan
17.06.2016, 19:09
chroot
не делает. Поэтому люди часто перепутывают chroot
и jails
означать то же самое. Они не делают. Термин "тюрьма", как говорят, вводится Bill Cheswick, когда он настроил ловушку для ловли взломщика: csrc.nist.gov/publications/secpubs/berferd.pdf
– BugHunterUK
13.06.2017, 22:03
chroot jail
хорошая идея в моем случае?
– Shafizadeh
12.03.2018, 12:07
В основном Вы просто изменяете корневой каталог своей среды. Так
/
становится
/some-jail/ (or whatever directory you want)
Когда доступы к приложению / они доберутся/some-jail/. Также приложение не может убежать/some-jail/, таким образом, Вы знаете, что оно не получит доступ ни к чему больше на Вашей машине. Это - очень простой способ сказать 'эй, что можно только получить доступ к этим вещам, которые я даю Вам, и Вы не можете получить доступ ни к чему больше в системе.
«Когда и почему я могу его использовать?»
Одно из применений - тестирование скриптов (время загрузки и другие), которые делают ссылки на абсолютные пути или которые запускают команды, которые вы, возможно, захотите перехватить и зарегистрировать (и, возможно, не выполнять их) - в среде, где вы не хотите, чтобы эти команды действительно работали в вашей рабочей среде.
Например, у меня есть встроенное устройство под управлением Linux, я хотел бы проверить работу некоторого bash без а) запуска его на реальном устройстве (так как у меня есть лучшие инструменты на моем рабочем столе, и я не хочу чтобы заблокировать устройство) б) запустить его в реальном режиме на моем рабочем столе (так как я не хочу, чтобы моя настольная система испортилась)
Кроме того, вы можете затем узнать, какие команды или другие файлы сценариев используются, поскольку запуск завершится с ошибкой всякий раз, когда он попытается запустить команду или сценарий оболочки, которых нет в "chroot jail".
(Конечно, вы можете работать в QEMU, Docker или виртуальной машине, но это потребует создания образа виртуальной машины и т. Д. - гораздо больше работы)
firejail
работает. – CivFan 17.06.2016, 19:02