chroot サブルーチン
目的
有効ルート・ディレクトリーを変更します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <unistd.h> char *Path;
説明
chroot サブルーチンは、 Path パラメーターで指定されたディレクトリーを有効ルート・ディレクトリーにします。 Path パラメーターがシンボリック・リンクを参照する場合、 chroot サブルーチンは、シンボリック・リンクが指すディレクトリーに有効ルート・ディレクトリーを設定します。 ネットワーク・ファイル・システム (NFS) がシステムにインストールされている場合、このパスは別のノードにまたがることができます。
有効ルート・ディレクトリーは、/(スラッシュ) で始まるファイルのパス名を検索する場合の開始点です。 現行ディレクトリーは、 chroot サブルーチンの影響を受けません。
有効ルート・ディレクトリーを変更するには、呼び出しプロセスに root ユーザー権限が必要です。 呼び出しプロセスには、新しい有効ルート・ディレクトリーへの検索アクセス権も必要です。
... 有効ルート・ディレクトリー内の (二重ピリオド) 項目は、有効ルート・ディレクトリー自体を意味するものと解釈されます。 したがって、このディレクトリーを使用して、有効ルート・ディレクトリーをルートとするサブツリーの外部にあるファイルにアクセスすることはできません。
パラメーター
| 項目 | 説明 |
|---|---|
| パス | 新しい有効ルート・ディレクトリーを指すポインター。 |
戻り値
正常終了時には値 0 が返されます。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。
エラー・コード
以下の 1 つ以上が該当する場合、 chroot サブルーチンは失敗し、有効なルート・ディレクトリーは変更されません。
| 項目 | 説明 |
|---|---|
| ENOENT | 指定されたディレクトリーは存在しません。 |
| EACCES | 指定されたディレクトリーは、検索アクセスを拒否します。 |
| EPERM | プロセスには root ユーザー権限がありません。 |
chroot サブルーチンは、他の理由で失敗することがあります。 追加エラーのリストについては、「 Appendix A. Base Operating System Error Codes for Services 」を参照してください。
NFS がシステムにインストールされている場合、以下の条件が満たされていると、 chroot サブルーチンも失敗する可能性があります。
| 項目 | 説明 |
|---|---|
| ETIMEDOUT | 接続がタイムアウトになりました。 |