setuid

Autres langues

Langue: ja

Version: 2004-05-27 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

setuid - ¥æ¡¼¥¶¡¼¼±ÊÌ (identity) ¤òÀßÄꤹ¤ë

½ñ¼°

#include <sys/types.h>
#include <unistd.h>

int setuid(uid_t uid);

ÀâÌÀ

setuid() ¤Ï¸½ºß¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£ ¤â¤·¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬ root ¤Ê¤é¤Ð¡¢ ¼Â (real) UID ¤ÈÊݸ (saved) set-user-ID ¤âÀßÄꤵ¤ì¤ë¡£

Linux ¤Ç¤Ï¡¢ setuid() ¤Ï _POSIX_SAVED_IDS ¤ò¤â¤Ã¤¿ POSIX ÈǤΤ褦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ ¤³¤ì¤Ï (¥ë¡¼¥È°Ê³°¤Î) set-user-ID ¥×¥í¥°¥é¥à¤Ë¤½¤Î¥æ¡¼¥¶¡¼¤ÎÆø¢¤ò Á´¤ÆÍ¿¤¨¡¢Æø¢¤ÎɬÍפʤ¤»Å»ö¤ò¤·¡¢ËÜÍè¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë °ÂÁ´¤ÊÊýË¡¤ÇºÆ¤ÓÌ᤹¤³¤È¤òµö¤¹¡£

¥æ¡¼¥¶¡¼¤¬¥ë¡¼¥È (root) ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤¬¥ë¡¼¥È¤Ë set-user-ID ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ ÆÃÊ̤ÎÃí°Õ¤¬Ê§¤ï¤ì¤ë¡£ setuid() ´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¼Ô¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¥Á¥§¥Ã¥¯¤·¡¢ ¤½¤ì¤¬¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ê¤é¤Ð¡¢ ¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ëÁ´¤Æ¤Î¥æ¡¼¥¶¡¼ ID ¤Ë uid ¤òÀßÄꤹ¤ë¡£ ¤³¤ì¤¬¹Ô¤Ê¤ï¤ì¤¿¸å¤Ë¤Ï¥×¥í¥°¥é¥à¤¬ºÆ¤Ó¥ë¡¼¥È¤ÎÆø¢¤òÆÀ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£

¤³¤Î¤è¤¦¤Ë¡¢set-user-ID-root ¥×¥í¥°¥é¥à¤Ï°ì»þŪ¤Ë¥ë¡¼¥ÈÆø¢¤òÍ¿¤¨¡¢ ¥ë¡¼¥È¤Ç¤Ê¤¤¤è¤¦¤Ë¿¶Éñ¤¦¤³¤È¤¬¤Ç¤­¡¢¤½¤ì¤«¤é setuid() ¤ò»È¤Ã¤ÆºÆ¤Ó¥ë¡¼¥ÈÆø¢¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ (POSIX ¤Ç¤Ê¤¤¡¢BSD) ¥³¡¼¥ë¤Ï seteuid(2) ¤Ç¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EAGAIN
uid ¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È¥Þ¥Ã¥Á¤»¤º¡¢¤³¤Î uid ¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤¬ NPROC rlimit ¤òĶ¤¨¤¿¡£
EPERM
¥æ¡¼¥¶¡¼¤¬Æø¢¤ò»ý¤¿¤º (Linux ¤Ç¤Ï CAP_SETUID ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤º)¡¢ uid ¤¬¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â UID ¤Þ¤¿¤ÏÊݸ set-user-ID ¤È°ìÃפ·¤Ê¤¤¡£

½àµò

SVr4, POSIX.1-2001. 4.4BSD ¤Î¥³¡¼¥ë¤È¤Ï´°Á´¤Ê¸ß´¹À­¤Ï¤Ê¤¤¡¢ BSD ¤Î¥³¡¼¥ë¤Ï¼Â (real)¡¢Êݸ (saved)¡¢¼Â¸ú (effective) ID ¤ÎÁ´¤Æ¤òÀßÄꤹ¤ë¡£

Ãí°Õ

Linux ¤Ç¤ÎÃí°Õ

Linux ¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤Î³µÇ°¤ò»ý¤Ä¡£ Ä̾¤³¤ì¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÅù¤·¤¤¡£ setuid() ¥³¡¼¥ë¤Ï¸½ºß¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤âÀßÄꤹ¤ë¡£ setfsuid(2) ¤â»²¾È¤¹¤ë¤³¤È¡£

uid ¤¬ÀΤμ¸ú uid ¤È°Û¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï¥³¥¢¡¦¥À¥ó¥×¤¹¤ë¤³¤È¤ò ¶Ø»ß¤µ¤ì¤ë¡£

´ØÏ¢¹àÌÜ

getuid(2), seteuid(2), setfsuid(2), setreuid(2), capabilities(7)