PDA

Просмотр полной версии : chroot


Тарифы: МТС, Билайн, МегаФон
Выгодные непубличные тарифы МТС, Билайн, МегаФон, Безлимитный интернет ✅
franklin
08-02-2014, 12:27
объясните пажалста доходчиво чотакое chroot :rolleyes: ато я никак вкурить не могу.

вот гружу я систему - ядро и всё остальное.
допустим делаю я chroot по мануалу, чо я в итоге получаю?
другую систему штоле с моим уже загруженным ядром, а запущенные процессы куда деваются? :confused:

Ivan
08-02-2014, 12:35
Там запущенный демон не может читать файлы выше своей директории.
Типа, если его хакнули, то он не сможет прочитать или изменить чужую информацию.

boco
08-02-2014, 12:38
из мана:
разве что-то непонятно? выполняется команда или шелл в окружении, где в качестве рутового каталога устанавливается указанный в параметрах каталог newroot. никакой другой системы, и никакие процессы никуда не деваются.

ttukis
08-02-2014, 13:17
а зачем это вам

franklin
08-02-2014, 16:24
тоесть если я делаю chroot юзера в другую папку и запускаю прогу от этого юзера, то она считает хоум дирикторией новыю папку? $HOME меняется штоле?

franklin
08-02-2014, 16:28
вот это не понимаю. вот у мну в терминале баш.
это только для пользователя root или имеется ввиду корневая папка юзера - домашняя???

franklin
08-02-2014, 16:30
а библиотеки использует от системы или там всё /usr, /lib, /var ... свои??

boco
08-02-2014, 17:20
что такое "делаю chroot юзера"? chroot меняет корневой каталог на newroot и запускает указанную в аргументах программу. естественно, в newroot должна быть эта программа и все, что нужно программе для работы (библиотеки, файлы устройств и т.п.)

к примеру, если создать пустой каталог с именем "zzz" и сказать "chroot zzz /bin/bash", то получите ошибку, потому что система сделает новым рутовым каталогом каталог "zzz" и не найдет там никакого/bin/bash.
во-первых, chroot может выполнять только root. во-вторых, при чем тут вообще домашняя папка. chroot просто меняет для запускаемой программы корневой каталог.
все должно быть свое, потому что "системное" перестает быть видимым после того как корневой каталог (от которого "растет" система) был изменен. в этом новом корневом каталоге должны быть свои /dev, /bin, /lib и так далее

franklin
08-02-2014, 20:53
воот.
я это и хотел узнать. корневой каталог это \ получается. для мну это как бы вся система, поэтому не мог впереть.
допустим у мну есть старый бинарник которому нужны какие-то старые версии библиотек и тп, я создаю папку, кладу туда всё необходимое, и том окружении всё запускаю штоле?
в "минимальный" набор надо шелл включать? <- busybox это примерно оно самое?
ядро-то моё загруженное остаётся?

franklin
08-02-2014, 20:58
я по твоей цитате мана увидел параметры -юзер, -группа. неправильно подумал карочи:rolleyes:

обычно я гугль напрягаю, но бывает момент, что никак допереть не могу :D

boco
09-02-2014, 10:53
да. но только нужно учесть, что ядро остается прежним, соответственно если старые программы и библиотеки используют несовместимые с текущим ядром системные вызовы (syscalls), то они не заработают.
если старой программе шелл не нужен, то нет необходимости.
видимо =) тока ему еще линки нужны типа /bin/sh -> busybox
ага

franklin
09-02-2014, 12:32
спасибо :)