最小限のソースからのLinuxディストリビューション用のブートストラップを作成しようとしています。
Chrootのような環境で構築したいと思います。これにより、パッケージが簡素化されます。現時点ではセキュリティは気にしません。ブートストラップには、非標準のサードパーティコマンドは必要ありません。ルートである必要もなければ、それは素晴らしいことです。
これが、fakechroot(1)fakeroot(1)chroot(1)が私が探しているものではない理由です。
Unshare(1)と/ bin/shを使用して偽装することは可能ですか?
はい。 カーネルがuser_namespacesをサポートし、それらが有効になっている場合) の場合、最初に「rootをシミュレート」し、次にchroot
を(実際のrootユーザーとして)呼び出す権利を取得できます。 (以前は、 通常のユーザーによる特権昇格の可能性 (たとえば、chrootディレクトリのset-UID-rootバイナリおよびカスタムライブラリを介して)のため、rootユーザーのみに制限する必要がありました。)
あなたはあなたのシェルでこれを試すことができます:
unshare --user --map-root-user --mount-proc --pid --fork
/sbin/chroot ......
su - user1
Fakeroot/fakechrootはすでに完全に適切であるため、バンドルまたはインストールするだけです。インスピレーションを得るためにcdebootstrapを見てください。