Próbuję napisać bootstrapper dla minimalnej dystrybucji linux ze źródła.
Chciałbym budować w środowisku chroot. To powinno uprościć pakowanie. W tym momencie nie dbam o bezpieczeństwo. Program ładujący nie powinien wymagać żadnych niestandardowych poleceń innych firm. Byłoby świetnie, gdyby nie było potrzeby rootowania.
Właśnie dlatego fakechroot (1) fakeroot (1) chroot (1) nie jest dokładnie tym, czego szukam.
Czy można sfałszować / użyć unshare (1) i / bin / sh?
chroot
not-root-user
namespace
unshare
Korzenie
źródło
źródło
unshare(1)
to raczej cienkie opakowanie wokół kolekcji wywołań systemowych tylko do roota, i (przynajmniej w Fedorze 18) nie jest to SUID, więc bardzo wątpię, czy to zadziała dla użytkowników innych niż root.Odpowiedzi:
Tak. Jeśli twoje jądro obsługuje przestrzenie nazw użytkownika (i są one włączone) , możesz najpierw „symulować użytkownika root”, który następnie ma prawo do wywołania
chroot
(jako prawdziwy użytkownik root). (Które poprzednio musiało być ograniczone tylko do użytkownika root, ze względu na możliwość eskalacji uprawnień przez zwykłego użytkownika (powiedzmy przez binaria root set-UID i biblioteki niestandardowe w katalogu chroot).)Możesz wypróbować to w swojej powłoce:
źródło
unshare
z util-linux-2.30.2-ALT1Po prostu spakuj lub zainstaluj fakeroot / fakechroot, ponieważ są już do tego idealnie odpowiednie. Inspiracje znajdziesz w cdebootstrap.
źródło