chroot コマンド

目的

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

構文

chroot Directory Command

説明

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

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

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

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

現行ルート位置が /etc/passwd ファイルにアクセスできないような位置である場合は、ls -l コマンドによりユーザー名およびグループ名を検索することはできません。さらに地域化ファイル (/usr/lib/nls/*) に依存するユーティリティーも、これらのファイルが新しいルート・ファイルシステムにないと正しく実行されません。必ず、すべての重要データ・ファイルが新しいルート・ファイルシステムにあることを確認し、必要に応じてこれらのファイルにアクセスするパス名を変更してください。
注: 必ず、/usr/sbin/execerror コマンドを新規ルート・ファイルシステ ム上で使用可能にしてください。それにより、chroot の実行失 敗時にその説明をしたエラー・メッセージが戻されるようになります。そうでないと、エラーが生じた場合 に、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
    これにより、ディレクトリー名 / (スラッシュ) は、/usr/bin/ksh コマンドが実行されている間は /var/tmp を参照することになります。また、元のルート・ファイルシステムはアクセス不能になります。/var/tmp ファイル上のファイルシステムには、ルート・ファイルシステム標準ディレクトリーが入っていなければなりません。特に、シェルが /var/tmp ファイルシステム上の /bin ファイルと /usr/bin ファイルにおいてコマンドを探すときは注意してください。

    /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 コマンドが入っています。