Имитировать chroot с unshare

Я пытаюсь написать загрузчик для минимального дистрибутива Linux.

Я хотел бы построить chroot-подобную среду. Это должно упростить упаковку. На данный момент я не забочусь о безопасности. У загрузчика не должно быть никаких нестандартных сторонних команд. Было бы здорово, если бы не было необходимости в корне.

Вот почему fakechroot (1) fakeroot (1) chroot (1) не совсем то, что я ищу.

Можно ли подделывать / использовать unshare (1) и / bin / sh?

Да. Если ваше ядро поддерживает user_namespaces (и они включены) , вы можете сначала «имитировать root» пользователя, который затем получает право на вызов chroot (как настоящий пользователь root). (Что раньше требовалось ограничивать только для пользователя root из-за возможности эскалации привилегий обычным пользователем (скажем, через двоичные файлы с установочным UID-кодом и пользовательские библиотеки в каталоге chroot).)

Вы можете попробовать это в своей оболочке:

 unshare --user --map-root-user --mount-proc --pid --fork chroot ...... su - user1 

Просто установите или установите fakeroot / fakechroot, так как они уже отлично подходят для этого. Посмотрите на cdebootstrap для вдохновения.