chroot コマンド
目的
コマンドのルート・ディレクトリーを変更します。
構文
chroot Directory コマンド
説明
注意: 新しいルート・ディレクトリー内のスペシャル・ファイルのメジャー・デバイス番号とマイナー・デバイス番号が実ルート・ディレクトリーのものと異なる場合は、ファイルシステムが上書きされることがあります。
chroot コマンドは、root ユーザー権限で操作するユーザーだけが使用できます。 root ユーザー権限があれば、chroot コマンドでルート・ディレクトリーを Command の実行時に Directory パラメーターで指定したディレクトリーに変更できます。 パス名の先頭にスラッシュ (/) があると、指定した Command とその子プロセス用の Directory に変更されます。
Directory パス名は、常に現行ルートに対する相対パスです。 chroot コマンドが有効なときであっても、Directory パス名は実行中のプロセスの現行ルートに対する相対パスです。
chroot コマンドの実行後に、大半のプログラムが正しく実行されなくなることがあります。 例えば、共有ライブラリーを使用するコマンドは、共有ライブラリーが新しいルート・ファイルシステムにないと正しく実行されません。 最もよく使用される共有ライブラリーは、/usr/ccs/lib/libc.a ライブラリーです。
Killed を返し、それ以上は返しません。パラメーター
| 項目 | 説明 |
|---|---|
| Command | chroot コマンドで実行するコマンドを指定します。 |
| directory | 新しいルート・ディレクトリーを指定します。 |
セキュリティー
RBAC ユーザーおよび Trusted AIX® ユーザーへの注意: このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
例
注意: 次の例に示すコマンドは、共有ライブラリーに依存している場合があります。 chroot コマンドを実行する前に、それらの共有ライブラリーが新しいルート・ファイルシステムにあることを確認してください。
- /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 - 別のファイルシステムをルート・ファイルシステムとして Korn シェルのサブシェルを実行するには、以下のように入力します。
これにより、ディレクトリー名/(スラッシュ) は、/var/tmp期間の間/usr/bin/kshコマンドで表示されます。 また、元のルート・ファイルシステムはアクセス不能になります。 上のファイル・システム/var/tmpファイルには、ルート・ファイル・システムの標準ディレクトリーが含まれている必要があります。 特に、シェルは以下の場所でコマンドを探します。/binおよび/usr/bin上のファイル/var/tmp。chroot /var/tmp /usr/bin/ksh実行/usr/bin/kshコマンドは、元のシェルとは別のプロセスとして実行されるサブシェルを作成します。 サブシェルを終了し、元のシェルに戻るには、END OF FILE (Ctrl-d) キー・シーケンスを押します。 これにより、 (現行ディレクトリー) および / (ルート・ディレク トリー) の意味を含む、元のシェルの環境が復元されます。
- 新しいファイルでなく元のルートに対して相対的なファイルを作成するには、以下のように入力します。
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 コマンドが入っています。 |