unshareを使用したchrootシミュレーション

unshareを使用したchrootシミュレーション

私は最小限のソースコード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

おすすめ記事