LINUX.ORG.RU

зачем делать chroot после pivot_root?

 , pivot-root


0

1

привет, друзья! :) надеюсь, что я задаю очень глупый вопрос!!

хочу сразу заметить что сейчас у нас повсеместное «initramfs».. и таким образом для загрузки компьютера — уже НЕ используется операция «pivot_root» ..

[[...так как «pivot_root» не работает (и не предназначено) для «rootfs». подробнее — https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt (но текста много, и весь его я не осилил :)) ]]

но для тех случаев когда «pivot_root» всё-таки работает (очевидно: НЕ для загрузки компьютера, а для чего-то другого :)) — давайте рассмотрим эти ситуации?

во всех примерах связанных «pivot_root» — всегда я видел что фигурирует тоже и операция «chroot»!

вопрос: зачем?

(что именно меняется после этого «chroot» ?)

заранее спасибо за ответы!

##################################################
UPDATED

ребят, я тут среди комментариев заметил надежды на тему того что операция «chroot» *якобы* нужна чтобы можно было бы сделать размонтирование прошлого корна.

поэтому выкладываю небольшое демонстрационное видео, где демонстрирую что «chroot» ни как НЕ связан с размонтированим старого раздела.

https://www.dropbox.com/s/muubp7hbdtraygl/bdsm-and-jailbreak.webm

воот :-)

★★★★★

Последнее исправление: user_id_68054 (всего исправлений: 4)

гм. действия разные.

pivot_root - переместить рут в другое место и подключить старый рут в каталог внутри нового рута.

chroot - сделать корневым каталогом новое место. При этом теряется доступ ко всему , что было выше нового каталога.

vel ★★★★★
()
Ответ на: комментарий от vel

по смыслу да...

..но ведь на практике — после «pivot_root» — уже корень становится новым :)

то есть если после «pivot_root» — сделать

exec ./путь/к/программе

то вроде как будет тоже самое как и сделать:

exec chroot . ./путь/к/программе

..

разве нет?

user_id_68054 ★★★★★
() автор топика
Ответ на: комментарий от user_id_68054

man pivot_root

Note that exec chroot changes the running executable, which is necessary if the old root directory should be unmounted afterwards.

Корень-то новый, а старый виден и его не отмонтировать без chroot.

NightSpamer
()
Ответ на: комментарий от torvn77

Читай внимательно, там о запущеных выполняемых файлах речь.

anonymous
()
Ответ на: комментарий от NightSpamer

Корень-то новый, а старый виден и его не отмонтировать без chroot.

после команды «exec ...» — старый корень легко и не принуждённо отмантируется

umount /old-root

а если НЕ сделать команду «exec ...» , то разумеется старый корень НЕ может отмонтироваться, так как из старого корня выполняется наша программа-pid-1 :-) ..

при чём заметтье, что во всех примерах — команда «chroot ...» как раз и выполняется через «exec ...» !

но вопрос — зачем делать именно «exec chroot . /путь/к/программе» если можно сделать сразу только лишь «exec /путь/к/программе» (без «chroot») и после этого точно также отмонтировать корень..

user_id_68054 ★★★★★
() автор топика
Ответ на: комментарий от NightSpamer

не отмонтировать без chroot.

слегка дополнил эту тему — видюшкой(*) .. :-)

user_id_68054 ★★★★★
() автор топика

Note: implementation details of pivot_root may change with time. In order to ensure compatibility, the following points should be observed:

- before calling pivot_root, the current directory of the invoking process should point to the new root directory

- use . as the first argument, and the _relative_ path of the directory for the old root as the second argument

- a chroot program must be available under the old and the new root

- chroot to the new root afterwards

- use relative paths for dev/console in the exec command

https://www.kernel.org/doc/Documentation/initrd.txt

deadNightTiger ★★★★★
()
Ответ на: комментарий от deadNightTiger

хорошо что ты нашёл очередную инструкцию (ТЫСЯЧИ ИХ), где сказано что нужно делать «chroot» после «pivot_root» :-) ...

...но вопрос так и остался не раскрытым — зачем «chroot», и на что именно он влияет?

--------------------------------------------------

не ужели он нужен только для целей совместимости?

(совместимости: непонятно чего, с непонятно чем :))

Note: implementation details of pivot_root may change with time. In order to ensure compatibility, the following points should be observed

user_id_68054 ★★★★★
() автор топика
Последнее исправление: user_id_68054 (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.