Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

ACCESS

Section: System calls (2)
Updated: January 13, 1998
Index Return to Main Contents
 

̾Á°

access - ¥æ¡¼¥¶¡¼¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¸¢Íø¤ò¥Á¥§¥Ã¥¯¤ò¤¹¤ë  

½ñ¼°

#include <unistd.h>

int access(const char *pathname, int mode);
 

ÀâÌÀ

access ¤Ï pathname ¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë(¤Þ¤¿¤Ï¾¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Î¥ª¥Ö¥¸¥§¥¯¥È) ¤ËÂФ·¤Æ¥×¥í¥»¥¹¤«¤éÆÉ¤ß¹þ¤ß¡¢½ñ¤­¹þ¤ß¤¬µö¤µ¤ì¤Æ¤¤¤ë¤«¡¢ ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¤Ê¤É¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦¡£ pathname ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ê¤é¤Ð¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë ÂФ¹¤ë¸¢Íø¤¬¸¡ºº¤µ¤ì¤ë¡£

mode ¤Ï R_OK, W_OK, X_OK, F_OK ¤Î°ì¤Ä°Ê¾å¤«¤é¹½À®¤µ¤ì¤ë¥Þ¥¹¥¯¤Ç¤¢¤ë¡£

R_OK, W_OK, X_OK ¤Ï¤½¤ì¤¾¤ì¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¡¢ÆÉ¤ß¹þ¤ßµö²Ä¡¢½ñ¤­¹þ¤ßµö²Ä¡¢¼Â¹Ôµö²Ä¤ò ¤¬¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤ËÍ׵᤹¤ë¡£ F_OK ¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤Î¤ß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦Í׵᤹¤ë¡£

¸¡ºº¤Ï pathname ¤ÇÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ñ¥¹¤Ë¸½¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Îµö²Ä¤Ë°Í¸¤·¤Æ¤¤¤ë¡£ ¤Þ¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¤â°Í¸¤·¤Æ¤¤¤ë¡£

¥Á¥§¥Ã¥¯¤Ï¼ÂºÝ¤ÎÁàºî¤Ç»ÈÍѤ¹¤ë¥×¥í¥»¥¹¤Î¼Â¸ú(effective)ID ¤Ç¤Ê¤¯ ¼Â(real) ¥æ¡¼¥¶¡¼ID ¤ä ¼Â(real) ¥°¥ë¡¼¥×ID ¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£ ¤³¤ì¤Ï set-UID ¥×¥í¥°¥é¥à¤Çµ¯Æ°¤·¤¿¥æ¡¼¥¶¡¼¤Î¸¢¸Â¤ò·èÄꤹ¤ë¤³¤È¤ò ÍÆ°×¤Ë¤¹¤ë¡£

¥¢¥¯¥»¥¹¡¦¥Ó¥Ã¥È¤Î¤ß¤¬¥Á¥§¥Ã¥¯¤µ¤ì¡¢¥Õ¥¡¥¤¥ë¤Î¼ïÎà¤äÆâÍÆ¤Ï¥Á¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¡£ ¤½¤ì¤Ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬¡Ö½ñ¤­¹þ¤ß²Äǽ¡×¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¤¿¤Ö¤ó¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬²Äǽ¤Ê¤³¤È¤ò°ÕÌ£¤·¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ò¥Õ¥¡¥¤¥ë¤È¤·¤Æ ½ñ¤­¹þ¤à¤³¤È¤¬²Äǽ¤Ê¤ï¤±¤Ç¤Ï¤Ê¤¤¡£Æ±ÍÍ¤Ë DOS ¤Î¥Õ¥¡¥¤¥ë¤Ï¡Ö¼Â¹Ô²Äǽ¡×¤È ȽÃǤµ¤ì¤ë¤¬¡¢ execve(2) ¥³¡¼¥ë¤Ï¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£  

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç(Á´¤Æ¤ÎÍ׵ᤵ¤ì¤¿µö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç(¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î mode ¤ÇÍ׵ᤵ¤ì¤¿µö²Ä¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢Â¾¤Î¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç)¡¢ -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£  

¥¨¥é¡¼

EACCES
Í׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤Ï ¤½¤Î¥Õ¥¡¥¤¥ë¼«¿È¤ËÈÝǧ¤µ¤ì¤¿¤« pathname ¤Ø¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä(search permission)¤¬ÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¡£
EROFS
ÆÉ¤ß¹þ¤ßÀìÍÑ(read-only)¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤ò Í׵ᤷ¤¿¡£
EFAULT
pathname ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
EINVAL
mode ¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£
ENAMETOOLONG
pathname ¤¬Ä¹²á¤®¤ë¡£
ENOENT
pathname ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥¢¥¯¥»¥¹²Äǽ¤À¤¬¡¢Â¸ºß¤·¤Ê¤¤¤«²õ¤ì¤¿(dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£
ENOTDIR
pathname ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
ENOMEM
¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£
ELOOP
pathname ¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
EIO
I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
 

À©¸Â

access ¤ÏÍ׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤Î¤É¤ì¤«¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¤¿¤È¤¨Â¾¤Î¤É¤ì¤«¤ËÀ®¸ù ¤·¤¿¤È¤·¤Æ¤â¥¨¥é¡¼¤òÊÖ¤¹¡£

access ¤Ï¥æ¡¼¥¶¡¼ID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤¿ NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤ÏÀµ¾ï¤Ëµ¡Ç½ ¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¤Ð¥æ¡¼¥¶¡¼ID ¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥µ¡¼¥Ð¡¼¤Ç¹Ô¤Ê ¤ï¤ì¸¢Íø¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ï¸«¤¨¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

Using access to check if a user is authorized to e.g. open a file before actually doing so using open(2) creates a security hole, because the user might exploit the short time interval between checking and opening the file to manipulate it.

¼ÂºÝ¤Ë open(2) ¤ò»ÈÍѤ¹¤ëÁ°¤Ë¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¸¢Íø¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë access ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¥»¥­¥å¥ê¥Æ¥£¡¦¥Û¡¼¥ë¤Ë¤Ê¤ë¡£¤Ê¤¼¤Ê¤é¥Á¥§¥Ã¥¯¤ò¤·¤Æ¤«¤é ¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥óÁàºî¤ò¤¹¤ë´Ö¤Ëû¤¤´Ö³Ö¤òÍøÍѤǤ­¤ë¤«¤é¡£  

½àµò

SVID, AT&T, POSIX, X/OPEN, BSD 4.3  

´ØÏ¢¹àÌÜ

stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2)


 

Index

̾Á°
½ñ¼°
ÀâÌÀ
ÊÖ¤êÃÍ
¥¨¥é¡¼
À©¸Â
½àµò
´ØÏ¢¹àÌÜ

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.