X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman2%2Fchroot.2;h=1b66dfdfcb28b8ac9588654904c4de3af134b4f4;hb=dba08e2eee1afb613e4e8e9310eb752cb06f45de;hp=da80c93ea51783b34407905cc3b8fabf219ab827;hpb=633a2252e0be3c867dce264a180a89ce8181d36f;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man2/chroot.2 b/release/man2/chroot.2 index da80c93e..1b66dfdf 100644 --- a/release/man2/chroot.2 +++ b/release/man2/chroot.2 @@ -1,7 +1,6 @@ -.\" Hey Emacs! This file is -*- nroff -*- source. -.\" .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" +.\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. @@ -21,6 +20,7 @@ .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END .\" .\" Modified by Michael Haardt .\" Modified 1993-07-21 by Rik Faith @@ -30,6 +30,12 @@ .\" Modified 1997-08-21 by Joseph S. Myers .\" Modified 2004-06-23 by Michael Kerrisk .\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.\" .\" Japanese Version Copyright (c) 1996 Yosiaki Yanagihara .\" all rights reserved. .\" Translated Mon Jun 24 14:29:55 JST 1996 @@ -41,104 +47,101 @@ .\" Updated & Modified Thu Dec 23 10:04:20 JST 2004 .\" by Yuichi SATO .\" -.TH CHROOT 2 2008-06-23 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -chroot \- ¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ë -.SH ½ñ¼° -.B #include +.TH CHROOT 2 2010\-09\-20 Linux "Linux Programmer's Manual" +.SH 名前 +chroot \- ルートディレクトリを変更する +.SH 書式 +\fB#include \fP +.sp +\fBint chroot(const char *\fP\fIpath\fP\fB);\fP +.sp +.in -4n +glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): +.in .sp -.BI "int chroot(const char *" path ); -.SH ÀâÌÀ -.BR chroot () -¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò -.I path -¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤¹¤ë¡£ -¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤¬ \fI/\fP ¤«¤é»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -¤³¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ÎÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤Ë¼õ¤±·Ñ¤¬¤ì¤ë¡£ -.PP -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï¡¢ -.B CAP_SYS_CHROOT -¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬ -.BR chroot () -¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ -.PP -¤³¤Î¥³¡¼¥ë¤Ï¥Ñ¥¹Ì¾²ò·è¤Î²áÄø¤Ç¹½À®Í×ÁǤòÊѹ¹¤¹¤ë¤Î¤ß¤Ç¡¢ -¤½¤Î¾¤Ë¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¡£ -.PP -¤³¤Î¥³¡¼¥ë¤Ï¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê -(working directory) ¤òÊѹ¹¤·¤Ê¤¤¡£ -¤½¤Î¤¿¤á¡¢¤³¤Î¥³¡¼¥ë¤Î¸å¤Ë \(aq\fI.\fP\(aq ¤¬ \(aq\fI/\fP\(aq ¤ò -º¬¤È¤¹¤ë¥Ä¥ê¡¼¤Î³°¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£ -Æäˡ¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç -"chroot jail" ¤«¤éƨ¤²½Ð¤»¤Æ¤·¤Þ¤¦¡£ +\fBchroot\fP(): +.ad l +.RS 4 +.PD 0 +.TP 4 +glibc 2.2.2 以降: +.nf +_BSD_SOURCE || + (_XOPEN_SOURCE\ >=\ 500 || + _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) && + !(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) +.TP 4 +.fi +glibc 2.2.2 より前: なし +.PD +.RE +.ad b +.SH 説明 +\fBchroot\fP() は、呼び出し元プロセスのルートディレクトリを \fIpath\fP で指定されたディレクトリに変更する。 このディレクトリ以下が +\fI/\fP から始まるパス名として使われる。 このルートディレクトリは呼び出し元のプロセスの全ての子プロセスに受け継がれる。 + +特権プロセス (Linux では、 \fBCAP_SYS_CHROOT\fP ケーパビリティを持つプロセス) のみが \fBchroot\fP() +を呼び出すことができる。 + +このコールはパス名解決の過程で構成要素を変更するのみで、 その他には何も行わない。 + +このコールは現在の作業ディレクトリ (working directory) を変更しない。 そのため、このコールの後に \(aq\fI.\fP\(aq が +\(aq\fI/\fP\(aq を 根とするツリーの外になる場合がある。 特に、スーパーユーザーは以下のようにすることで "chroot jail" +から逃げ出せてしまう。 .nf mkdir foo; chroot foo; cd .. .fi -¤³¤Î¥³¡¼¥ë¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤·¤Ê¤¤¤Î¤Ç¡¢ -¤³¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï chroot ¥Ä¥ê¡¼¤Î³°¤Ë¤¢¤ë -¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£ -¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢ -.I errno -¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£ -.SH ¥¨¥é¡¼ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£ -°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë: -.TP -.B EACCES -¥Ñ¥¹Ì¾¤ÎÅÓÃæ¤Î¤É¤³¤«¤Ë¸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤¡£ -.RB ( path_resolution (7) -¤â»²¾È¤¹¤ë¤³¤È¡£) -.\" ¥Ñ¥¹Ì¾¤ÎºÇ¸å¤Î¹½À®Í×ÁǤˤ⸡º÷µö²Ä¤¬É¬ÍפǤ¢¤ë¡£ -.\" ¤ª¤½¤é¤¯¡¢¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ê¤Î¤«? -.TP -.B EFAULT -.I path -¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£ -.TP -.B EIO -I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£ -.TP -.B ELOOP -.I path -¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ -.TP -.B ENAMETOOLONG -.I path -¤¬Ä¹²á¤®¤ë¡£ -.TP -.B ENOENT -¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£ -.TP -.B ENOMEM -¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£ -.TP -.B ENOTDIR -.I path -¤ÎÆâÍƤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£ -.TP -.B EPERM -¸Æ¤Ó½Ð¤·Â¦¤Ë½½Ê¬¤ÊÆø¢¤¬¤Ê¤¤¡£ -.SH ½àµò -SVr4, 4.4BSD, SUSv2 (⤷¡¢SUSv2 ¤Ç¤Ï²áµî¤Î̾»Ä¤È¤µ¤ì¤Æ¤¤¤ë)¡£ -¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ -.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, ENOLINK, EMULTIHOP ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£ -.\" X/OPEN ¤Ë¤Ï EIO, ENOMEM, EFAULT ¥¨¥é¡¼¾õÂ֤ε­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -.BR fork (2) -¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -¿Æ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ò·Ñ¾µ¤¹¤ë¡£ -.BR execve (2) -¤Î¾ì¹ç¤â¡¢¥ë¡¼¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£ +このコールはオープンファイルディスクリプタをクローズしないので、 このようなファイルディスクリプタは chroot ツリーの外にある +ファイルにアクセスできる。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。 +.SH エラー +ファイルシステムによっては他のエラーが返される事がある。 一般的なエラーを以下に挙げる: +.TP +\fBEACCES\fP +.\" Also search permission is required on the final component, +.\" maybe just to guarantee that it is a directory? +パス名の構成要素に検索許可がない (\fBpath_resolution\fP(7) も見よ)。 +.TP +\fBEFAULT\fP +\fIpath\fP がアクセスできるアドレス空間外を指している。 +.TP +\fBEIO\fP +I/O エラーが発生した。 +.TP +\fBELOOP\fP +\fIpath\fP を解決する際に遭遇したシンボリックリンクが多過ぎる。 +.TP +\fBENAMETOOLONG\fP +\fIpath\fP が長過ぎる。 +.TP +\fBENOENT\fP +ファイルが存在しない。 +.TP +\fBENOMEM\fP +カーネルに十分なメモリがない。 +.TP +\fBENOTDIR\fP +\fIpath\fP の構成要素がディレクトリではない。 +.TP +\fBEPERM\fP +呼び出し側に十分な特権がない。 +.SH 準拠 +.\" SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions. +.\" X/OPEN does not document EIO, ENOMEM or EFAULT error conditions. +SVr4, 4.4BSD, SUSv2 (但し、SUSv2 では過去の名残とされている)。 この関数は POSIX.1\-2001 にはない。 +.SH 注意 +\fBfork\fP(2) で作成された子プロセスは、 親プロセスのルートディレクトリを継承する。 \fBexecve\fP(2) +の場合も、ルートディレクトリは変更されない。 -FreeBSD ¤Ë¤Ï¤è¤ê¶¯ÎÏ¤Ê -.BR jail () -¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ë¡£ .\" FIXME . eventually say something about containers, .\" virtual servers, etc.? -.SH ´ØÏ¢¹àÌÜ -.BR chdir (2), -.BR path_resolution (7) +FreeBSD にはより強力な \fBjail\fP() システムコールがある。 +.SH 関連項目 +\fBchdir\fP(2), \fBpath_resolution\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。