C: вызов system () внутри chroot - PullRequest
       41

C: вызов system () внутри chroot

4 голосов
/ 24 августа 2011

У меня есть программа, написанная на C, которая запускается в chroot внутри тюрьмы, что делает некоторые системные вызовы, например, system ( "ls" ). Проблема в том, что программа не выполняет системные вызовы, когда я запускаю ее в тюрьме. Я включил все необходимые библиотеки исполняемого файла (нашел их с помощью команды ldd bash), а также исполняемый файл bash (/bin/bash) и его библиотеки (также найденные с ldd). Кажется, что-то не хватает. У кого-нибудь есть идеи по этому поводу?

Ответы [ 2 ]

5 голосов
/ 24 августа 2011

По определению, system работает "/ bin / sh -c ".

Скопируйте /bin/sh в свою chroot-тюрьму (или свяжите ее с / bin / bash), и все будет хорошо.

1 голос
/ 20 января 2012

Это может сработать, но цель использования chroot, как правило, состоит в том, чтобы помешать злоумышленникам выполнить произвольные команды оболочки. После того, как вы поместили / bin / sh в тюрьму для chroot, вы устранили любую цель, чтобы изначально иметь тюрьму для chroot.

...