LINUX.ORG.RU

запуск программы в chroot

 , ,


0

1

Как запустить программу в chroot, из которого недоступен исполняемый файл програмы(а также зависимые динамические библиотеки)?

Может можно динамическому линкеру сказать что бы он только слинковал программу и не запускал её? Потом выполнить чрут и передать исполнение слинкованной программе, которая уже в памяти лежит.



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

чтобы выполняться, её файл будет загружен в память и будет доступен ей оттуда

anonymous
()

А почёму нет тега «хочу странного»?
Имхо странная очень идея после chroot запустить ПО, которое из chroot недоступно.

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

Напиши свой загрузчик, ну.

Вклинься до мейна в какой нибудь инит.

Только нафига ты пытаешься скрыть программу от самой себя? Она себя один хрен из памяти прочитать сможет.

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

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

urquan
() автор топика

Запускай под отладчиком, поставь точку останова на main(), когда загрузится и приостановится — сделай процессу chroot(), дропни CAP_CHROOT, отцепи отладчик.

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

Так будет работать только для динамически слинкованных бинарников с конкретной реализацией (диапозон версий glibc, где есть __libc_start_main). А вариант с ptrace более универсальный - можно поставить breakpoint на entrypoint, там сделать chroot и capset, а потом вернуть всё обратно. И это будет работать как с другими реализациями glibc (musl, например), так и со статически-слинкованными бинарниками.

kmeaw ★★★
()

из которого недоступен исполняемый файл програмы(а также зависимые динамические библиотеки)?

в изоляции от остальной файловой системы

Ахтунг! Ахтунг! Обнаружены противоречивые требования!

seiken ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.