|
|||||||
|
|
ACCESSSection: 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 ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£¥¨¥é¡¼
À©¸Â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 | ||||||
|
|
|
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. |