|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > c > chroot - システムコールの説明 chroot - システムコールの説明 - Linux コマンド集 一覧表名前chroot - ルート・ディレクトリを変更する 書式
#include <unistd.h>
説明chroot ()は、ルート・ディレクトリを path で指定されたディレクトリに変更する。 このディレクトリ以下が / から始まるパス名として使われる。 このルート・ディレクトリは現在のプロセスの全ての子プロセスに受け継がれる。 特権プロセス (Linux では、 CAP_SYS_CHROOT ケーパビリティを持つプロセス) のみが chroot (2) を呼び出すことができる。 このコールはパス名解決の過程で構成要素を変更するのみで、 その他には何も行わない。 このコールは現在の作業ディレクトリ (working directory) を変更しない。 そのため、このコールの後に '.' が '/' を根とするツリーの外になる場合がある。 特に、スーパー・ユーザーは `mkdir foo; chroot foo; cd ..' とすれば「chroot jail」から逃げ出せてしまう。 このコールはオープンファイルディスクリプタをクローズしないので、 このようなファイルディスクリプタは chroot ツリーの外にある ファイルにアクセスできる。 返り値成功すると 0 を返す。 失敗すると -1 を返し、 errno に適切な値を設定する。 エラーファイルシステムによっては他のエラーが返される事がある。 一般的なエラーを以下に挙げる:
準拠SVr4, 4.4BSD, SUSv2 (但し、SUSv2 では過去の名残とされている)。 この関数は POSIX.1-2001 にはない。 注意
fork
(2) で作成された子プロセスは、
親プロセスのルート・ディレクトリを継承する。
execve
(2) の場合も、ルート・ディレクトリは変更されない。
関連項目
|
|