Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > chroot |
Автор: CPlusPlusFAN 5.6.2009, 01:38 | ||||
Здравствуйте. Есть текущая директория. В неё вложена директория root. В директории root лежит программа a.out. Её исходник:
В текущей директории лежит программа с исходником:
Эта программа запускается от рута и chroot выполнется. Однако, программа root/a.out не создаёт ни один из файлов. Если вызвать не от рута, то создаются все файлы. Ведь chroot вызван для директории root. Так почему же он блокирует всё? Спасибо за внимание. |
Автор: MAKCim 5.6.2009, 09:22 |
execve вылетает с ошибкой - ENOENT это связано с тем, что ядро не может найти динамический компоновщик (ld), который обычно лежит в /lib или /lib64 |
Автор: CPlusPlusFAN 5.6.2009, 13:32 |
MAKCim, и что делать тогда? |
Автор: CPlusPlusFAN 5.6.2009, 16:55 |
MAKCim, а можно те либы, которые подключаются на этапе исполнения, вшить в бинарник, чтоб запускалось? Как её там? libstdc++.so или как-то так. |
Автор: CPlusPlusFAN 5.6.2009, 17:12 | ||
MAKCim, нашёл решение - компилить исполняемый файл так:
правда, бинарник, зараза, вырос. ![]() |
Автор: MAKCim 6.6.2009, 09:44 |
CPlusPlusFAN, вопрос решен? |
Автор: CPlusPlusFAN 6.6.2009, 10:11 |
угу. тему закрываю. |