chmod

Autres langues

Langue: ja

Version: 2004-06-23 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

chmod, fchmod - ¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤òÊѹ¹¤¹¤ë

½ñ¼°

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

int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);

ÀâÌÀ

path ¤ÇÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¡¢ ¤Þ¤¿¤Ï fildes ¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤òÊѹ¹¤¹¤ë¡£

¥â¡¼¥É¤Ï¡¢¼¡¤Î³Æ¥â¡¼¥É¤Î or ¤ò¤È¤Ã¤¿¤â¤Î¤Ç»ØÄꤹ¤ë:

S_ISUID
04000 ¼Â¹Ô»þ¤Î¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼¡¦ID (set user ID)
S_ISGID
02000 ¼Â¹Ô»þ¤Î¥»¥Ã¥È¡¦¥°¥ë¡¼¥×¡¦ID (set group ID)
S_ISVTX
01000 ¥¹¥Æ¥£¥Ã¥­¡¼ (sticky) ¥Ó¥Ã¥È
S_IRUSR
00400 ½êÍ­¼Ô (owner) ¤Ë¤è¤ëÆɤ߼è¤ê (read)
S_IWUSR
00200 ½êÍ­¼Ô¤Ë¤è¤ë½ñ¤­¹þ¤ß (write)
S_IXUSR
00100 ½êÍ­¼Ô¤Ë¤è¤ë¼Â¹Ô (execute) / ¸¡º÷ (search)
S_IRGRP
00040 ¥°¥ë¡¼¥×¤Ë¤è¤ëÆɤ߼è¤ê
S_IWGRP
00020 ¥°¥ë¡¼¥×¤Ë¤è¤ë½ñ¤­¹þ¤ß
S_IXGRP
00010 ¥°¥ë¡¼¥×¤Ë¤è¤ë¼Â¹Ô / ¸¡º÷
S_IROTH
00004 ¾¿Í (others) ¤Ë¤è¤ëÆɤ߼è¤ê
S_IWOTH
00002 ¾¿Í¤Ë¤è¤ë½ñ¤­¹þ¤ß
S_IXOTH
00001 ¾¿Í¤Ë¤è¤ë¼Â¹Ô / ¸¡º÷

¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú (effective) UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ¹¤ë¤«¡¢ ¤½¤Î¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (Linux ¤Ç¤Ï CAP_FOWNER ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£

¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¯ (Linux ¤Ç¤Ï CAP_FSETID ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬¤Ê¤¯)¡¢¤«¤Ä¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥× ID ¤¬ ¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Þ¤¿¤ÏÊä½õŪ¤Ê¥°¥ë¡¼¥× ID ¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤¾ì¹ç¡¢ S_ISGID ¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ë¤µ¤ì¤ë¤¬¡¢¤³¤ì¤Ë¤è¤Ã¤Æ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£

°ÂÁ´¤Î¤¿¤á¤Î½èÃ֤Ȥ·¤Æ¡¢ ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¦»þ¤Ë ¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼ ID ¤È¥»¥Ã¥È¡¦¥°¥ë¡¼¥× ID ¥Ó¥Ã¥È¤È¼Â¹Ô¥Ó¥Ã¥È¤¬ ¥ª¥Õ¤Ë¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£ (Linux ¤Ç¤Ï¡¢½ñ¤­¹þ¤ß¥×¥í¥»¥¹¤¬ CAP_FSETID ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤ì¤¬µ¯¤³¤ë¡£) ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤À¤±¤¬ ÆÃÊ̤ΰÕÌ£¤ò»ý¤Ä¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È¤òÀßÄê¤Ç¤­¤ë¤â¤Î¤¬¤¢¤ë¡£ ¥¹¥Æ¥£¥Ã¥­¡¼¡¦¥Ó¥Ã¥È¤È¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë ¥»¥Ã¥È¡¦¥æ¡¼¥¶¡¼ (¥°¥ë¡¼¥×)¡¦ID ¥Ó¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢ stat(2) ¤ò¸«¤è¡£

NFS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤Ï¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÀ©¸Â¤¹¤ë¤È¡¢ ´û¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤¹¤°¤Ë±Æ¶Á¤¬µÚ¤Ö¡£ ¤³¤ì¤Ï¥¢¥¯¥»¥¹À©¸æ¤¬¥µ¡¼¥Ð¡¼¾å¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¤¬¡¢ ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¦¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£ ¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Õ¥¡¥¤¥ë°À­¤Î¥­¥ã¥Ã¥·¥å¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÀ©¸Â¤ò´Ë¤¯¤¹¤ë¤È¡¢ ¾¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ë¾ðÊó¤¬ÅÁ¤ï¤ë¤Î¤¬ÃÙ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

ÊÖ¤êÃÍ

À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢-1¤òÊÖ¤·¡¢ errno ¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£

¥¨¥é¡¼

¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤òÊÖ¤¹¾ì¹ç¤¬¤¢¤ë¡£ chmod() ¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë¡£
EACCES
¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä¤¬¤Ê¤¤ (path_resolution(7) ¤â¸«¤è)¡£
EFAULT
path ¤¬³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
EIO
I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
ELOOP
path ¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
ENAMETOOLONG
path ¤¬Ä¹²á¤®¤ë¡£
ENOENT
¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£
ENOMEM
¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£
ENOTDIR
¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£
EPERM
¼Â¸ú UID ¤¬¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï CAP_FOWNER ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£
EROFS
¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤ßÀìÍÑ (read only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£

fchmod() ¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤òµó¤²¤ë:

EBADF
¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ fildes ¤¬Í­¸ú¤Ç¤Ê¤¤¡£
EIO
¾åµ­¤ò»²¾È¡£
EPERM
¾åµ­¤ò»²¾È¡£
EROFS
¾åµ­¤ò»²¾È¡£

½àµò

4.4BSD, SVr4, POSIX.1-2001.

´ØÏ¢¹àÌÜ

chown(2), execve(2), fchmodat(2), open(2), stat(2), path_resolution(7)