Next: env invocation, Up: Modified command invocation
chrootは,指定されたルートディレクトリでコマンドを実行します. 多くのシステムでは,スーパーユーザのみこれが可能です.概要です.
chroot newroot [command [args]...] chroot option
通常ファイル名は,ディレクトリ構造のルート,すなわち/を起点とし
て調べられます.chrootは,ルートをnewrootディレクトリ
(存在する必要があります)に変更し,オプションのargsを用いて
commandを実行します.commandが指定されていない場合,デフォ
ルトは,SHELL環境変数や,設定されていない場合は/bin/sh
の
値が,-iオプションで呼び出されます.
オプションは--helpと--versionだけです.See Common options.
chrootの使用にあたり,一般的な問題を避ける手助けとなるヒント がいくつかあります.単純な例を始めるため,commandはスタティック リンクされているバイナリだと仮定します.ダイナミックリンクされている実 行形式を使用している場合,共有ライブラリを新しいルートディレクトリの正 しい位置に配置する必要があります.
例えば,スタティックリンクのlsの実行形式を作成し, /tmp/emptyに配置した場合,以下のコマンドをrootで実行することが 可能です.
$ chroot /tmp/empty /ls -Rl /
出力は以下のようになります.
/: total 1023 -rwxr-xr-x 1 0 0 1041745 Aug 16 11:17 ls
bashのような,ダイナミックリンクされている実行形式を使用した い場合,最初に必要な共有オブジェクトを見つけるため‘ldd bash’を実 行してください.そして,実際のバイナリをコピーし,新しいルートディレク トリの要求される場所に,リストアップされているファイルもコピーして下さ い.最後に,実行形式が要求するすべてのファイルも(例えば,データ,ステー ト,デバイスファイル),必要な場所にコピーして下さい.
1 chroot自身が失敗した場合.
126 commandは見つかったが,呼出しできない場合.
127 commandが見つからない場合.
それ以外はcommandの終了ステータスになります.