私は最小限のソースコードLinuxディストリビューション用のブートローダを作成しようとしています。
私はchrootのような環境で構築したいと思います。これにより包装が簡素化されます。今はセキュリティに興味がありません。ブートローダには非標準のサードパーティコマンドは必要ありません。ルートが必要でなければ良いでしょう。
これがfakechroot(1) fakeroot(1) chroot(1)が私が探しているのではない理由です。
/を偽造するためにunshare(1)と/ bin / shを使用できますか?
ベストアンサー1
はい。もしあなたのカーネルはuser_namespacesをサポートしています(そしてアクティブです)。まず、「rootユーザーとして偽装」してからchroot
(実際のrootユーザーとして)呼び出し権限を取得できます。 (以前はrootユーザーのみに制限する必要がありました。一般ユーザーは権限アップグレードを実行できます。(たとえば、chrootディレクトリのset-UID-rootバイナリとカスタムライブラリを介して)
シェルで次のことを試すことができます。
unshare --user --map-root-user --mount-proc --pid --fork
/sbin/chroot ......
su - user1