308 lines
9.7 KiB
Groff
308 lines
9.7 KiB
Groff
.\" Copyright (c) 1980, 1991, 1993
|
||
.\" The Regents of the University of California. All rights reserved.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" 1. Redistributions of source code must retain the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer.
|
||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer in the
|
||
.\" documentation and/or other materials provided with the distribution.
|
||
.\" 3. All advertising materials mentioning features or use of this software
|
||
.\" must display the following acknowledgement:
|
||
.\" This product includes software developed by the University of
|
||
.\" California, Berkeley and its contributors.
|
||
.\" 4. Neither the name of the University nor the names of its contributors
|
||
.\" may be used to endorse or promote products derived from this software
|
||
.\" without specific prior written permission.
|
||
.\"
|
||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
.\" SUCH DAMAGE.
|
||
.\"
|
||
.\" @(#)execve.2 8.5 (Berkeley) 6/1/94
|
||
.\" %FreeBSD: src/lib/libc/sys/execve.2,v 1.39 2004/07/04 20:55:48 ru Exp %
|
||
.\"
|
||
.\" $FreeBSD$
|
||
.Dd June 1, 1994
|
||
.Dt EXECVE 2
|
||
.Os
|
||
.Sh ̾¾Î
|
||
.Nm execve
|
||
.Nd ¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë
|
||
.Sh ¥é¥¤¥Ö¥é¥ê
|
||
.Lb libc
|
||
.Sh ½ñ¼°
|
||
.In unistd.h
|
||
.Ft int
|
||
.Fn execve "const char *path" "char *const argv[]" "char *const envp[]"
|
||
.Sh ²òÀâ
|
||
.Fn execve
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤ò¿·¤·¤¤¥×¥í¥»¥¹¤ËÊÑ´¹¤·¤Þ¤¹¡£
|
||
¿·¤·¤¤¥×¥í¥»¥¹¤Ï
|
||
.Em new process file
|
||
¤È¸Æ¤Ð¤ì¤ëÄ̾ï¤Î¥Õ¥¡¥¤¥ë¤Ë´ð¤Å¤¤¤Æ¹½À®¤µ¤ì¤Þ¤¹¡£
|
||
¤³¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï
|
||
.Fa path
|
||
¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤Þ¤¹¡£
|
||
¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¼Â¹Ô²Äǽ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¡¢¤Þ¤¿¤Ï¥¤¥ó¥¿¥×¥ê¥¿ÍѤÎ
|
||
¥Ç¡¼¥¿¤Î¥Õ¥¡¥¤¥ë¤Ç¤¹¡£
|
||
¼Â¹Ô²Äǽ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¼±Ê̥إåÀ¤Ë
|
||
¥Ç¡¼¥¿¤Î¥Ú¡¼¥¸¤¬Â³¤¤¤¿¤â¤Î¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£
|
||
¤³¤Î¥Ç¡¼¥¿¤Ï¡¢½é´ü¥×¥í¥°¥é¥à (¥Æ¥¥¹¥È) ¤È½é´üÃͤ¢¤ê¥Ç¡¼¥¿¤Î¥Ú¡¼¥¸¤òɽ¤·¤Þ¤¹¡£
|
||
ÄɲäΥڡ¼¥¸¤Ï¥Ø¥Ã¥À¤Î»ØÄê¤Ë¤è¤Ã¤Æ 0 ¥Ç¡¼¥¿¤Ç½é´ü²½¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
|
||
.Xr elf 5
|
||
¤ª¤è¤Ó
|
||
.Xr a.out 5
|
||
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
.Pp
|
||
¥¤¥ó¥¿¥×¥ê¥¿¥Õ¥¡¥¤¥ë¤Ï¼¡¤Î·Á¼°¤Î¹Ô¤Ç³«»Ï¤·¤Þ¤¹¡£
|
||
.Pp
|
||
.Bd -ragged -offset indent -compact
|
||
.Sy \&#!
|
||
.Em interpreter
|
||
.Bq Em arg
|
||
.Ed
|
||
.Pp
|
||
¥¤¥ó¥¿¥×¥ê¥¿¥Õ¥¡¥¤¥ë¤¬
|
||
.Sy execve
|
||
¤µ¤ì¤ë¤È¤¡¢¥·¥¹¥Æ¥à¤Ï¼ÂºÝ¤Ë¤Ï»ØÄê¤Î
|
||
.Em interpreter
|
||
¤ò
|
||
.Sy execve
|
||
¤·¤Þ¤¹¡£
|
||
¥ª¥×¥·¥ç¥ó¤Î
|
||
.Em arg
|
||
¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤ì¤Ï
|
||
.Em interpreter
|
||
¤Î 1ÈÖÌܤΰú¿ô¤Ë¤Ê¤ê¡¢¸µ¡¹¤Î
|
||
.Sy execve
|
||
¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï 2 ÈÖÌܤΰú¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
¤½¤ì°Ê³°¤Ç¤Ï
|
||
.Sy execve
|
||
¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬ 1ÈÖÌܤΰú¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
¸µ¡¹¤Î°ú¿ô¤Ï¥·¥Õ¥È¤µ¤ì¤Æ¸å³¤Î°ú¿ô¤Ë
|
||
¤Ê¤ê¤Þ¤¹¡£
|
||
0 ÈÖÌܤΰú¿ô¤Ï»ØÄꤵ¤ì¤¿
|
||
.Em interpreter
|
||
¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
°ú¿ô
|
||
.Fa argv
|
||
¤Ï¡¢¥Ì¥ëʸ»ú¤Ç½ª¤ï¤ëʸ»ú¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¤¹¡£
|
||
³ÆÊ¸»ú¥Ý¥¤¥ó¥¿¤Ï¥Ì¥ëʸ»ú¤Ç½ª¤ï¤ëʸ»úÎó¤ò»Ø¤·¤Þ¤¹¡£
|
||
¤³¤ì¤é¤Îʸ»úÎó¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤«¤é»²¾È¤Ç¤¤ë°ú¿ô¥ê¥¹¥È¤ò¹½À®¤·¤Þ¤¹¡£
|
||
¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î°ú¿ô¤¬ÇÛÎóÆâ¤Ë¸ºß¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
||
´·½¬¤Ç¤Ï¡¢ºÇ½é¤ÎÍ×ÁǤ¬¼Â¹Ô¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î̾Á°¤Ë¤Ê¤ë¤Ï¤º¤Ç¤¹ (¤¿¤È¤¨¤Ð¡¢
|
||
.Fa path
|
||
¤ÎºÇ¸å¤Î¹½À®Í×ÁÇ)¡£
|
||
.Pp
|
||
°ú¿ô
|
||
.Fa envp
|
||
¤â¡¢¥Ì¥ëʸ»ú¤Ç½ª¤ï¤ëʸ»ú¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ç¤¹¡£
|
||
³ÆÊ¸»ú¥Ý¥¤¥ó¥¿¤Ï¥Ì¥ëʸ»ú¤Ç½ª¤ï¤ëʸ»úÎó¤ò»Ø¤·¤Þ¤¹¡£
|
||
¤³¤ÎÇÛÎó¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤Ï¡¢Ä̾¥°¥í¡¼¥Ð¥ëÊÑ¿ô
|
||
.Va environ
|
||
¤ËÊݸ¤µ¤ì¤Þ¤¹¡£
|
||
¤³¤ì¤é¤Îʸ»úÎó¤Ï¡¢°ú¿ô¤È¤·¤Æ¥³¥Þ¥ó¥É¤ØÄ¾ÀÜ
|
||
ÅϤµ¤ì¤Ê¤¤¾ðÊó¤ò¿·¤·¤¤¥×¥í¥»¥¹¤ËÅϤ·¤Þ¤¹
|
||
.Pf ( Xr environ 7
|
||
¤ò»²¾È)¡£
|
||
.Pp
|
||
¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¥¤¥á¡¼¥¸Æâ¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ëµ½Ò»Ò¤Ï¡¢
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÎÃæ¤Ç¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Ç¤¹¡£
|
||
¤·¤«¤·¡¢close-on-exec ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤ÏÎã³°¤Ç¤¹¡£
|
||
.Pf ( Xr close 2
|
||
¤È
|
||
.Xr fcntl 2
|
||
¤ò»²¾È)¡£
|
||
¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤Îµ½Ò»Ò¤Ï
|
||
.Fn execve
|
||
¤Î±Æ¶Á¤ò¼õ¤±¤Þ¤»¤ó¡£
|
||
.Fn execve
|
||
¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ëɸ½à¤Îµ½Ò»Ò (0, 1 ¤½¤·¤Æ / ¤Þ¤¿¤Ï 2) ¤¬¥¯¥í¡¼¥º¤µ¤ì¡¢
|
||
ID ÀßÄê¤Î·ë²Ì¡¢¤½¤Î¥×¥í¥»¥¹¤¬ÆÃ¸¢¤òÆÀ¤¿¾ì¹ç¤Ë¤Ï¡¢
|
||
¤½¤ì¤é¤Îµ½Ò»Ò¤Ï¼«Æ°Åª¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Þ¤¹¡£
|
||
ÆÃ¸¢¤ò»ý¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¤É¤Î¥×¥í¥°¥é¥à¤â
|
||
.Fn execve
|
||
¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¸å¤Ç¡¢¤³¤ì¤é¤Îµ½Ò»Ò¤¬ÊĤ¸¤¿¤Þ¤Þ¤È¤Ê¤ë¤È
|
||
²¾Äꤹ¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
||
.Pp
|
||
¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤Ç̵»ë¤¹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Ï¡¢
|
||
¿·¤·¤¤¥×¥í¥»¥¹Æâ¤Ç¤â̵»ë¤µ¤ì¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¥¤¥á¡¼¥¸Æâ¤ÇÊ᪤µ¤ì¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤Ï¡¢
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸Æâ¤Ç¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ë
|
||
ÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¥·¥°¥Ê¥ë¤Ï¡¢
|
||
¥·¥°¥Ê¥ë¥¢¥¯¥·¥ç¥ó¤ÎÊѲ½¤È¤Ï̵´Ø·¸¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤¿¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤Ï̤ÄêµÁ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤¹ (¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
|
||
.Xr sigaction 2
|
||
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£
|
||
.Pp
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¥Õ¥¡¥¤¥ë¤Ë¥æ¡¼¥¶ ID ÀßÄê¥â¡¼¥É¥Ó¥Ã¥È
|
||
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç
|
||
.Pf ( Xr chmod 2
|
||
¤ò»²¾È)¡¢¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤Ï¡¢
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¥Õ¥¡¥¤¥ë¤Î½êÍ¼Ô ID ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¥Õ¥¡¥¤¥ë¤Ë¥°¥ë¡¼¥× ID ÀßÄê¥â¡¼¥É¥Ó¥Ã¥È¤¬
|
||
ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Ï¿·¤·¤¤
|
||
¥×¥í¥»¥¹¥¤¥á¡¼¥¸¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤Þ¤¹
|
||
(¼Â¸ú¥°¥ë¡¼¥× ID ¤Ï¥°¥ë¡¼¥×¥ê¥¹¥È¤ÎºÇ½é¤ÎÍ×ÁǤǤ¹)¡£
|
||
¿·¤·¤¤¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID¡¢¼Â¥°¥ë¡¼¥× ID¡¢¤ª¤è¤Ó¤½¤Î¾¤Î
|
||
¥°¥ë¡¼¥× ID ¤Ï¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
¥æ¡¼¥¶ ID ÀßÄꤪ¤è¤Ó¥°¥ë¡¼¥× ID ÀßÄê½èÍý¤Î¸å¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤Ï
|
||
ÂàÈò¥æ¡¼¥¶ ID ¤È¤·¤ÆµÏ¿¤µ¤ì¡¢¼Â¸ú¥°¥ë¡¼¥× ID ¤Ï
|
||
ÂàÈò¥°¥ë¡¼¥× ID¤È¤·¤ÆµÏ¿¤µ¤ì¤Þ¤¹¡£
|
||
¤³¤ì¤é¤ÎÃͤϡ¢¸å¤Ç¼Â¸ú ID ¤òÊѹ¹¤¹¤ë¤Î¤Ë»ÈÍѤǤ¤Þ¤¹
|
||
.Pf ( Xr setuid 2
|
||
¤ò»²¾È)¡£
|
||
.Pp
|
||
³ºÅö¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç
|
||
.Cm nosuid
|
||
¥ª¥×¥·¥ç¥ó¤¬Í¸ú¤Ê¾ì¹ç¡¢¤Þ¤¿¤Ï¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤¬¥¤¥ó¥¿¥×¥ê¥¿
|
||
¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢ID ÀßÄê¥Ó¥Ã¥È¤Ï°ÕÌ£¤ò»ý¤Á¤Þ¤»¤ó¡£
|
||
¼Â¸ú ID ¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥È¥ì¡¼¥¹¤Ï
|
||
̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
.Pp
|
||
¤Þ¤¿¡¢¿·¤·¤¤¥×¥í¥»¥¹¤Ï¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤«¤é¼¡¤Î°À¤ò·Ñ¾µ¤·¤Þ¤¹¡£
|
||
.Pp
|
||
.Bl -column ¥Õ¥¡¥¤¥ë¥â¡¼¥É¥Þ¥¹¥¯ -offset indent -compact
|
||
.It ¥×¥í¥»¥¹ ID Ta Xr getpid 2 Ns \ ¤ò»²¾È
|
||
.It ¿Æ¥×¥í¥»¥¹ ID Ta Xr getppid 2 Ns \ ¤ò»²¾È
|
||
.It ¥×¥í¥»¥¹¥°¥ë¡¼¥× ID Ta Xr getpgrp 2 Ns \ ¤ò»²¾È
|
||
.It ¥¢¥¯¥»¥¹¥°¥ë¡¼¥× Ta Xr getgroups 2 Ns \ ¤ò»²¾È
|
||
.It ºî¶È¥Ç¥£¥ì¥¯¥È¥ê Ta Xr chdir 2 Ns \ ¤ò»²¾È
|
||
.It ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê Ta Xr chroot 2 Ns \ ¤ò»²¾È
|
||
.It À©¸æÃ¼Ëö Ta Xr termios 4 Ns \ ¤ò»²¾È
|
||
.It ¥ê¥½¡¼¥¹¤Î»ÈÍѾõ¶· Ta Xr getrusage 2 Ns \ ¤ò»²¾È
|
||
.It ¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ Ta Xr getitimer 2 Ns \ ¤ò»²¾È
|
||
.It ¥ê¥½¡¼¥¹¤Î»ÈÍÑÀ©¸Â Ta Xr getrlimit 2 Ns \ ¤ò»²¾È
|
||
.It ¥Õ¥¡¥¤¥ë¥â¡¼¥É¥Þ¥¹¥¯ Ta Xr umask 2 Ns \ ¤ò»²¾È
|
||
.It ¥·¥°¥Ê¥ë¥Þ¥¹¥¯ Ta Xr sigvec 2 ,
|
||
.Xr sigsetmask 2 Ns \ ¤ò»²¾È
|
||
.El
|
||
.Pp
|
||
.Fn execve
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î·ë²Ì¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¤È¤¡¢
|
||
¥×¥í¥°¥é¥à¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
|
||
.Bd -literal -offset indent
|
||
main(argc, argv, envp)
|
||
int argc;
|
||
char **argv, **envp;
|
||
.Ed
|
||
.Pp
|
||
¤³¤³¤Ç¡¢
|
||
.Fa argc
|
||
¤Ï
|
||
.Fa argv
|
||
¤ÎÍ×ÁÇ¿ô (``arg count'') ¤Ç¤¢¤ê¡¢
|
||
.Fa argv
|
||
¤Ï¡¢°ú¿ô¼«¿È¤ò»Ø¤¹Ê¸»ú¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤ò»Ø¤·¤Þ¤¹¡£
|
||
.Sh Ìá¤êÃÍ
|
||
.Fn execve
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ò¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ç
|
||
¾å½ñ¤¤¹¤ë¤Î¤Ç¡¢½èÍý¤¬À®¸ù¤·¤¿¸Æ¤Ó½Ð¤·¤Ë¤ÏÌá¤ë¥×¥í¥»¥¹¤¬¤¢¤ê¤Þ¤»¤ó¡£
|
||
.Fn execve
|
||
¤¬¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤ËÊ֤äƤ¯¤ë¾ì¹ç¤Ï
|
||
¥¨¥é¡¼¤¬µ¯¤¤Æ¤¤¤Þ¤¹¡£
|
||
Ìá¤êÃÍ¤Ï -1 ¤Ç¡¢¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤Ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô
|
||
.Va errno
|
||
¤¬ÀßÄꤵ¤ì¤Þ¤¹
|
||
.Sh ¥¨¥é¡¼
|
||
¼¡¤Î¾ì¹ç¡¢
|
||
.Fn execve
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½èÍý¤Ë¼ºÇÔ¤·¡¢¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤ËÌá¤ê¤Þ¤¹:
|
||
.Bl -tag -width Er
|
||
.It Bq Er ENOTDIR
|
||
¥Ñ¥¹¤Î¹½À®Í×ÁÇÃæ¤Ë¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er ENAMETOOLONG
|
||
¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬ 255 ʸ»ú¤ò±Û¤¨¤Æ¤¤¤ë¤«¡¢
|
||
¤Þ¤¿¤Ï¥Ñ¥¹Ì¾Á´ÂΤ¬ 1023 ʸ»ú¤ò±Û¤¨¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er ENAMETOOLONG
|
||
¥¤¥ó¥¿¥×¥ê¥È¤µ¤ì¤ë¥¹¥¯¥ê¥×¥È¤òµ¯Æ°¤¹¤ë¤È¤¤Ë¡¢
|
||
¥¤¥ó¥¿¥×¥ê¥¿¤Î̾Á°¤¬
|
||
.Dv MAXSHELLCMDLEN
|
||
ʸ»ú¤ò±Û¤¨¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er ENOENT
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£
|
||
.It Bq Er ELOOP
|
||
¥Ñ¥¹Ì¾¤òÊÑ´¹¤¹¤ë¤È¤¤Ë¸¡½Ð¤µ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬Â¿¤¹¤®¤Þ¤¹¡£
|
||
.It Bq Er EACCES
|
||
»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Ë¤Ï¡¢¸¡º÷¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹
|
||
.It Bq Er EACCES
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
||
.It Bq Er EACCES
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢¼Â¹Ô¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
|
||
.It Bq Er ENOEXEC
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤ËŬÀڤʥ¢¥¯¥»¥¹µö²Ä¤¬¤¢¤ê¤Þ¤¹¤¬¡¢
|
||
¥Ø¥Ã¥À¤Î¥Þ¥¸¥Ã¥¯Èֹ椬̵¸ú¤Ç¤¹¡£
|
||
.It Bq Er ETXTBSY
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤Ï½ã¿è¤Ê¼ê³¤ (¶¦Í¥Æ¥¥¹¥È) ¥Õ¥¡¥¤¥ë¤Ç¡¢
|
||
¸½»þÅÀ¤Ç¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ½ñ¹þ¤ß¤Þ¤¿¤ÏÆÉ¼è¤êÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er ENOMEM
|
||
¿·¤·¤¤¥×¥í¥»¥¹¤Ï¡¢µö¤µ¤ì¤¿
|
||
.Pq Xr getrlimit 2
|
||
¤Ç²Ý¤µ¤ì¤¿ºÇÂçÃÍ
|
||
°Ê¾å¤Î²¾ÁÛ¥á¥â¥ê¤òɬÍפȤ·¤Þ¤¹¡£
|
||
.It Bq Er E2BIG
|
||
¿·¤·¤¤¥×¥í¥»¥¹¤Î°ú¿ô¥ê¥¹¥È¤Î¥Ð¥¤¥È¿ô¤¬¥·¥¹¥Æ¥à¤Î²Ý¤·¤¿¾å¸Â¤ò
|
||
±Û¤¨¤Æ¤¤¤Þ¤¹¡£
|
||
¤³¤Î¾å¸Â¤Ï¡¢
|
||
.Xr sysctl 3
|
||
¤Î MIB ÊÑ¿ô
|
||
.Dv KERN_ARGMAX
|
||
¤Ë¤è¤ê»ØÄꤵ¤ì¤Þ¤¹¡£
|
||
.It Bq Er EFAULT
|
||
¿·¤·¤¤¥×¥í¥»¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ø¥Ã¥ÀÆâ¤Î¥µ¥¤¥ºÃͤÇ
|
||
¼¨¤µ¤ì¤ë¤Û¤ÉŤ¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
||
.It Bq Er EFAULT
|
||
.Fa path ,
|
||
.Fa argv ,
|
||
¤Þ¤¿¤Ï
|
||
.Fa envp
|
||
°ú¿ô¤¬Àµ¤·¤¯¤Ê¤¤¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er EIO
|
||
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤éÆÉ¤ß¼è¤ë´Ö¤ËÆþ½ÐÎÏ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£
|
||
.El
|
||
.Sh ·Ù¹ð
|
||
¥¹¡¼¥Ñ¥æ¡¼¥¶¤Ç¤Ê¤¤¤â¤Î¤ËÂФ·¤Æ
|
||
.Em setuid
|
||
¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¡¢¼Â
|
||
.Em uid
|
||
¤¬ ``root'' ¤Î»þ¤Ë¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¤ÏÉôʬŪ¤Ë
|
||
¥¹¡¼¥Ñ¥æ¡¼¥¶¤Î¸¢¸Â¤ò»ý¤Á¤Þ¤¹¡£
|
||
.Sh ´ØÏ¢¹àÌÜ
|
||
.Xr ktrace 1 ,
|
||
.Xr _exit 2 ,
|
||
.Xr fork 2 ,
|
||
.Xr execl 3 ,
|
||
.Xr exit 3 ,
|
||
.Xr sysctl 3 ,
|
||
.Xr a.out 5 ,
|
||
.Xr elf 5 ,
|
||
.Xr environ 7 ,
|
||
.Xr mount 8
|
||
.Sh µ¬³Ê
|
||
.Fn execve
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ÆÃÄê¤Î¾õ¶·¤Ë¤ª¤¤¤Æµ½Ò»Ò 0, 1 ¤½¤·¤Æ/¤Þ¤¿¤Ï 2 ¤ò
|
||
ºÆÅÙ¥ª¡¼¥×¥ó¤¹¤ë¾¤Ï¡¢
|
||
.St -p1003.1-2001
|
||
¤ËŬ¹ç¤·¤Æ¤¤¤Þ¤¹¡£
|
||
¾Í赬³Ê¤¬¹¹¿·¤µ¤ì¤ëºÝ¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤Êưºî¤òÍ׵᤹¤ë¤³¤È¤¬´üÂÔ¤µ¤ì¤Æ¤ª¤ê¡¢
|
||
¸¢¸Â¤ò»ý¤¿¤Ê¤¤¥×¥í¥»¥¹¤ËÂФ·¤Æ¤â¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
|
||
.\" NB: update this caveat when TC1 is blessed.
|
||
¥¤¥ó¥¿¥×¥ê¥È¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Î¤Ï¡¢³ÈÄ¥¤Ç¤¹¡£
|
||
.Sh Îò»Ë
|
||
.Fn execve
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
|
||
.Bx 4.2
|
||
¤ÇÅо줷¤Þ¤·¤¿¡£
|