PRoot
関連記事
PRoot は GNU/Linux の chroot や mount --bind
、ユーザー空間の binfmt_misc と同じように、非特権ユーザーが別の root ディレクトリでプログラムを実行できるようにする機能を実装するプログラムです。chroot の "jail" とよく似ています。root 権限が得られず chroot が使えない場合に有用です。
インストール
proot は prootAUR パッケージでインストールできます。proot を実行する前に pacstrap を使用することで Arch 環境のディレクトリを初期化できます。
使用方法
インストールした後、proot は root 権限を必要としません。chroot と同じように、proot に新しい root ディレクトリとするディレクトリを指定してプログラムを実行できます。プログラムを指定しなかった場合、proot はデフォルトで /bin/sh
を起動します。仮想ファイルシステムを手動でマウントする必要はありません。proot が自動的に対処します。
$ proot -r ~/mychroot/
シェルが起動した段階で、/
はホスト環境の ~/chroot/
ディレクトリになります。
-b
オプションを使うことでパスを明示的にバインドすることができます:
$ proot -b /bin/bash:/bin/sh
上記のコマンドはホストの /bin/bash
をゲストの /bin/sh
で使えるようにします。
proot は内部的に qemu のユーザーモードエミュレータを利用しており、たとえホスト環境とは別のアーキテクチャ向けにプログラムがコンパイルされている場合でも、proot の中でプログラムを実行することができます。
セキュリティ
chroot と同じように、proot はファイルシステムレベルの隔離しか提供しません。proot "jail" の中のプログラムは同一のカーネル、ハードウェア、プロセス領域、ネットワークサブシステムを共有します。chroot や proot はハイパーバイザや準仮想化マシンなどの仮想化アプリケーションの代わりとして使うことを想定していません。