J'essaie d'écrire un programme d'amorçage pour une distribution Linux minimale à partir de la source.
Je voudrais construire dans un environnement de type chroot. Cela devrait simplifier l'emballage. Je ne me soucie pas de la sécurité à ce stade. Le programme d'amorçage ne doit nécessiter aucune commande tierce non standard. Ce serait formidable s'il n'était pas nécessaire d'être root non plus.
C'est pourquoi fakechroot (1) fakeroot (1) chroot (1) n'est pas exactement ce que je recherche.
Est-il possible de truquer / utiliser unshare (1) et / bin / sh?
chroot
not-root-user
namespace
unshare
Rooties
la source
la source
unshare(1)
est un wrapper plutôt mince autour d'une collection d'appels système root uniquement, et (au moins sur Fedora 18) ce n'est pas SUID, donc je doute fort que cela fonctionne pour les utilisateurs non root.Réponses:
Oui. Si votre noyau prend en charge user_namespaces (et qu'ils sont activés) , vous pouvez d'abord "simuler l'utilisateur root", qui obtient ensuite le droit d'invoquer
chroot
(en tant que véritable utilisateur root). (Ce qui auparavant devait être limité uniquement à l'utilisateur root en raison d' une possibilité d'escalade de privilèges par un utilisateur normal (par exemple, via des binaires set-UID-root et des bibliothèques personnalisées dans le répertoire chroot).)Vous pouvez essayer ceci dans votre shell:
la source
unshare
de util-linux-2.30.2-alt1Il suffit de regrouper ou d'installer fakeroot / fakechroot, car ils sont déjà parfaitement adaptés à cela. Regardez cdebootstrap pour l'inspiration.
la source