chroot コマンド

目的

コマンドのルート・ディレクトリーを変更します。

構文

chroot Directory コマンド

説明

注意: 新しいルート・ディレクトリー内のスペシャル・ファイルのメジャー・デバイス番号とマイナー・デバイス番号が実ルート・ディレクトリーのものと異なる場合は、ファイルシステムが上書きされることがあります。

chroot コマンドは、root ユーザー権限で操作するユーザーだけが使用できます。 root ユーザー権限があれば、chroot コマンドでルート・ディレクトリーを Command の実行時に Directory パラメーターで指定したディレクトリーに変更できます。 パス名の先頭にスラッシュ (/) があると、指定した Command とその子プロセス用の Directory に変更されます。

Directory パス名は、常に現行ルートに対する相対パスです。 chroot コマンドが有効なときであっても、Directory パス名は実行中のプロセスの現行ルートに対する相対パスです。

chroot コマンドの実行後に、大半のプログラムが正しく実行されなくなることがあります。 例えば、共有ライブラリーを使用するコマンドは、共有ライブラリーが新しいルート・ファイルシステムにないと正しく実行されません。 最もよく使用される共有ライブラリーは、/usr/ccs/lib/libc.a ライブラリーです。

ls -l コマンドは、現在のルート位置がファイルにアクセスできない場合、ユーザー名とグループ名を正しく表示できません。 /etc/passwd ファイルにアクセスできない場合、 さらに地域化ファイル (/usr/lib/nls/*) に依存するユーティリティーも、これらのファイルが新しいルート・ファイルシステムにないと正しく実行されません。 必ず、すべての重要データ・ファイルが新しいルート・ファイルシステムにあることを確認し、必要に応じてこれらのファイルにアクセスするパス名を変更してください。
注: chroot 障害が発生した場合に説明的なエラー・メッセージが返されるように、新しいルート・ファイル・システムで /usr/sbin/execerror コマンドが使用可能であることを確認してください。 それ以外の場合、エラーがあれば、 chrootKilled を返し、それ以上は返しません。

パラメーター

項目 説明
Command chroot コマンドで実行するコマンドを指定します。
directory 新しいルート・ディレクトリーを指定します。

セキュリティー

RBAC ユーザーおよび Trusted AIX® ユーザーへの注意: このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

注意: 次の例に示すコマンドは、共有ライブラリーに依存している場合があります。 chroot コマンドを実行する前に、それらの共有ライブラリーが新しいルート・ファイルシステムにあることを確認してください。

  1. /usr/bin ディレクトリーをルート・ファイルシステムとして pwd コマンドを実行するには、以下のように入力します。
    mkdir /usr/bin/lib
     
    cp /usr/ccs/lib/libc.a /usr/bin/lib
    
    cp /usr/lib/libcrypt.a /usr/bin/lib
     
    chroot /usr/bin pwd
  2. 別のファイルシステムをルート・ファイルシステムとして Korn シェルのサブシェルを実行するには、以下のように入力します。
    chroot /var/tmp /usr/bin/ksh
    これにより、ディレクトリー名/(スラッシュ) は、/var/tmp期間の間/usr/bin/kshコマンドで表示されます。 また、元のルート・ファイルシステムはアクセス不能になります。 上のファイル・システム/var/tmpファイルには、ルート・ファイル・システムの標準ディレクトリーが含まれている必要があります。 特に、シェルは以下の場所でコマンドを探します。/binおよび/usr/bin上のファイル/var/tmp

    実行/usr/bin/kshコマンドは、元のシェルとは別のプロセスとして実行されるサブシェルを作成します。 サブシェルを終了し、元のシェルに戻るには、END OF FILE (Ctrl-d) キー・シーケンスを押します。 これにより、 (現行ディレクトリー) および / (ルート・ディレク トリー) の意味を含む、元のシェルの環境が復元されます。

  3. 新しいファイルでなく元のルートに対して相対的なファイルを作成するには、以下のように入力します。
    chroot directory Command > file

ファイル

項目 説明
/etc/passwd 基本ユーザー属性の入ったファイルを指定します。
/usr/ccs/lib/libc.a 標準入出力ライブラリーと標準 C ライブラリーを指定します。
/usr/ccs/lib/libcurses.a curses ライブラリーを指定します。
/usr/lib/liblvm.a LVM (論理ボリューム・マネージャー) ライブラリーを指定します。
/usr/ccs/lib/libm.a 数学ライブラリーを指定します。
/usr/lib/libodm.a ODM (オブジェクト・データ・マネージャー) ライブラリーを指定します。
/usr/sbin/chroot chroot コマンドが入っています。