setreuid

Autres langues

Langue: ja

Version: 2004-07-04 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

setreuid, setregid - ¼Â (real) ¤È¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÀßÄꤹ¤ë

½ñ¼°

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

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

ÀâÌÀ

setreuid() ¤Ï¥«¥ì¥ó¥È¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ ID ¤È ¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£

¼Â¥æ¡¼¥¶¡¼ ID ¤ä¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë -1 ¤òÍ¿¤¨¤¿¾ì¹ç¡¢ ¥·¥¹¥Æ¥à¤Ï¤½¤Î ID ¤òÊѹ¹¤·¤Ê¤¤¡£

ÈóÆø¢¥×¥í¥»¥¹¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï Êݸ set-user-ID ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£

POSIX: ÈóÆø¢¥×¥í¥»¥¹¤¬¼Â¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï ¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤ÏÊݸ¼Â¸ú¥æ¡¼¥¶¡¼ID ¤ËÀßÄê¤Ç¤­¤ë¤«Èݤ«¤Ï¡¢ »ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£

Linux: ÈóÆø¢¥æ¡¼¥¶¡¼¤Ï¼Â¥æ¡¼¥¶¡¼ ID ¤ò¼Â¥æ¡¼¥¶¡¼ ID ¤Þ¤¿¤Ï ¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Ê¤¤¡£

Linux: ¼Â¥æ¡¼¥¶¡¼ID ¤¬ÀßÄꤵ¤ì¤¿¤ê¡¢¼Â¸ú¥æ¡¼¥¶¡¼ID ¤¬Á°¤Î¼Â¥æ¡¼¥¶¡¼ID ¤È °Û¤Ã¤¿ÃͤËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢Êݸ set-user-ID ¤Ë¤Ï¿·¤·¤¤¼Â¸ú¥æ¡¼¥¶¡¼ID ¤ÎÃͤ¬ ÀßÄꤵ¤ì¤ë¡£

¤³¤ì¤ÈÁ´¤¯Æ±Íͤˡ¢ setregid() ¤Ï¥«¥ì¥ó¥È¥×¥í¥»¥¹¤Î¼Â¥°¥ë¡¼¥× ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤òÀßÄꤷ¡¢ ¾åµ­¤ÎÀâÌÀ¤Ç¡Ö¥æ¡¼¥¶¡¼¡×¤ò¡Ö¥°¥ë¡¼¥×¡×¤ËÆɤßÂؤ¨¤¿¤³¤È¤¬À®¤êΩ¤Ä¡£

ÊÖ¤êÃÍ

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

¥¨¥é¡¼

EPERM
¸½ºß¤Î¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯ (Linux ¤Ç¤Ï setreuid() ¤Î¾ì¹ç¤Ë CAP_SETUID ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¯¡¢ setregid() ¤Î¾ì¹ç¤Ë CAP_SETGID ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¤)¡¢ °Ê²¼¤Î¤¤¤º¤ì¤Ç¤â¤Ê¤¤Êѹ¹¤¬»ØÄꤵ¤ì¤¿: (i) ¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤È¼Â¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÆþ¤ì´¹¤¨¤ë¡£ (ii) ÊÒÊý¤ÎÃͤò¾Êý¤ËÀßÄꤹ¤ë¡£ (iii) ¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤ËÊݸ set-user-ID (Êݸ set-group-ID) ¤ÎÃͤòÀßÄꤹ¤ë¡£

½àµò

POSIX.1-2001, 4.3BSD (setreuid() ¤È setregid() ´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤ÇÅо줷¤¿)¡£

Ãí°Õ

¼Â¸ú¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤òÊݸ¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×) ID ¤Ë ÀßÄꤹ¤ë¤³¤È¤¬¡¢Linux 1.1.37 (1.1.38) ¤«¤é²Äǽ¤Ë¤Ê¤Ã¤¿¡£

´ØÏ¢¹àÌÜ

getgid(2), getuid(2), seteuid(2), setgid(2), setresuid(2), setuid(2), capabilities(7)