Я пытаюсь написать загрузчик для минимального дистрибутива Linux.
Я хотел бы встроить в среду, похожую на chroot. Это должно упростить упаковку. Я не забочусь о безопасности в этом пункте. Загрузчик не должен требовать каких-либо нестандартных сторонних команд. Было бы здорово, если бы не было необходимости иметь права root.
Вот почему fakechroot (1) fakeroot (1) chroot (1) не совсем то, что я ищу.
Можно ли подделать / использовать unshare (1) и / bin / sh?
chroot
not-root-user
namespace
unshare
Rooties
источник
источник
unshare(1)
является довольно тонкой оболочкой для набора системных вызовов только для root, и (по крайней мере в Fedora 18) это не SUID, поэтому я очень сомневаюсь, что это будет работать для пользователей без полномочий root.Ответы:
Да. Если ваше ядро поддерживает пространства имен user_name (и они включены) , вы можете сначала «симулировать пользователя root», который затем получает право вызывать
chroot
(как настоящий пользователь root). (Который ранее требовалось ограничить только пользователем root из-за возможности повышения привилегий обычным пользователем (скажем, через двоичные файлы set-UID-root и пользовательские библиотеки в каталоге chroot).)Вы можете попробовать это в вашей оболочке:
источник
unshare
от Util-Linux-2.30.2-ALT1Просто установите пакет или установите fakeroot / fakechroot, поскольку они уже идеально подходят для этого. Посмотрите на cdebootstrap для вдохновения.
источник