getspnam

Autres langues

Langue: ja

Version: 2003-11-15 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf - shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë

½ñ¼°


/* °ìÈÌŪ¤Ê shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë API */


#include <shadow.h> struct spwd *getspnam(const char *name); struct spwd *getspent(void); void setspent(void); void endspent(void); struct spwd *fgetspent(FILE *fp); struct spwd *sgetspent(const char *s); int putspent(struct spwd *p, FILE *fp); int lckpwdf(void); int ulckpwdf(void); /* GNU ÈǤˤª¤±¤ë³ÈÄ¥ */
#define _SVID_SOURCE /* ¤Þ¤¿¤Ï _BSD_SOURCE */
#include <shadow.h> int getspent_r(struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp); int getspnam_r(const char *name, struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp); int fgetspent_r(FILE *fp, struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp); int sgetspent_r(const char *s, struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp);

ÀâÌÀ

ÀΤϰŹ沽¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ë ¸«¤¨¤ë¤è¤¦¤Ë¸ø³«¤·¤Æ¤ª¤¤¤Æ¤â°ÂÁ´¤À¤È¹Í¤¨¤é¤ì¤Æ¤¤¤¿¡£ Julianne Frances Haugh ¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥¹¥¤¡¼¥È¤ò¼ÂÁõ¤·¤¿¡£ ¤³¤ì¤Ï°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ò¡¢root ¤Î¤ß¤¬Æɤळ¤È¤¬¤Ç¤­¤ë shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹ (Î㤨¤Ð¡¢ ¥í¡¼¥«¥ë¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë /etc/shadow, NIS, LDAP) ¤ËÊÝ»ý¤¹¤ë¡£

°Ê²¼¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Ï¡¢ÅÁÅýŪ¤Ê¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë ´Ø¿ô¤Ë»÷¤Æ¤¤¤ë (Î㤨¤Ð getpwnam(3) ¤ä getpwent(3) ¤ò»²¾È)¡£

getspnam() ´Ø¿ô¤Ï¡¢¥æ¡¼¥¶Ì¾ name ¤Ë¥Þ¥Ã¥Á¤¹¤ë shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥È¥ê¤ò Í×ÁÇËè¤Ëʬ²ò¤·¡¢³ÆÍ×ÁǤò³ÊǼ¤·¤¿¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òÊÖ¤¹¡£

getspent() ´Ø¿ô¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ë¼¡¤Î¥¨¥ó¥È¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ë¤ª¤±¤ë°ÌÃ֤ϡ¢ setspent() ¤Ç½é´ü²½¤µ¤ì¤ë¡£ Æɤ߹þ¤ß¤¬½ª¤ï¤Ã¤¿¸å¤Ë¡¢ endspent() ¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¡£

fgetspent() ´Ø¿ô¤Ï getspent() ¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ setspent() ¤Ç°ÅÌۤΤ¦¤Á¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤ë¥¹¥È¥ê¡¼¥à¤Ç¤Ï¤Ê¤¯¡¢Í¿¤¨¤é¤ì¤¿¥¹¥È¥ê¡¼¥à¤ò»È¤¦¡£

sgetspent() ´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿Ê¸»úÎó s ¤ò²òÀϤ· struct spwd ¤Ë³ÊǼ¤¹¤ë¡£

putspent() ´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿ struct spwd *p ¤ÎÆâÍƤò shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë·Á¼°¤Î¥Æ¥­¥¹¥È¹Ô¤Ç¥¹¥È¥ê¡¼¥à fp ¤Ë½ñ¤­½Ð¤¹¡£ ¶õʸ»úÎó¤È¤·¤Æ¡¢ Ãͤ¬ NULL ¤Îʸ»úÎ󥨥ó¥È¥ê¤ÈÃͤ¬ -1 ¤Î¿ôÃÍ¥¨¥ó¥È¥ê¤¬ ½ñ¤­½Ð¤µ¤ì¤ë¡£

lckpwdf() ´Ø¿ô¤Ï¡¢ shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò ¿½ÅƱ»þ¥¢¥¯¥»¥¹¤«¤é¼é¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£ ¤³¤Î´Ø¿ô¤Ï¥í¥Ã¥¯¤Î³ÍÆÀ¤ò»î¤ß¡¢ À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£ ¼ºÇÔ¤·¤¿¾ì¹ç (15 ÉðÊÆâ¤Ë¥í¥Ã¥¯¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç) ¤Ï -1 ¤òÊÖ¤¹¡£ ulckpwdf() ´Ø¿ô¤Ï¥í¥Ã¥¯¤òºÆ¤Ó²òÊü¤¹¤ë¡£ shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ø¤ÎľÀÜ¥¢¥¯¥»¥¹¤«¤é Êݸ¤ë¼êÃʤ¬¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ lckpwdf() ¤ò»È¤¦¥×¥í¥°¥é¥à¤À¤±¤¬¥í¥Ã¥¯¤òÄÌÃΤǤ­¤ë¡£

¤³¤ì¤é¤Î´Ø¿ô¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î shadow API ¤ò¹½À®¤·¤Æ¤¤¤¿´Ø¿ô¤Ç¤¢¤ê¡¢ ¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤Ç¹­¤¯ÍøÍѲÄǽ¤Ç¤¢¤ë¡£

¥ê¥¨¥ó¥È¥é¥ó¥ÈÈÇ

¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÂФ¹¤ë¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤÈƱ¤¸¤è¤¦¤Ë¡¢ glibc ¤Ë¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤ¬¤¢¤ë¡£ getspnam_r() ´Ø¿ô¤Ï getspnam() ¤È»÷¤Æ¤¤¤ë¤¬¡¢¼èÆÀ¤·¤¿ shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂΤò spbuf ¤¬»Ø¤¹Îΰè¤Ë³ÊǼ¤¹¤ë¡£ shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂΤÏʸ»úÎ󷲤ؤΥݥ¤¥ó¥¿¤ò´Þ¤ß¡¢ ¤³¤ì¤é¤Îʸ»úÎ󷲤ϥµ¥¤¥º buflen ¤Î¥Ð¥Ã¥Õ¥¡ buf ¤Ë³ÊǼ¤µ¤ì¤ë¡£ *spbufp ¤Ë¤Ï (À®¸ù¤·¤¿¾ì¹ç¤Ï) ·ë²Ì¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬³ÊǼ¤µ¤ì¡¢ (¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Þ¤¿¤Ï¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ï) NULL ¤¬³ÊǼ¤µ¤ì¤ë¡£

´Ø¿ô getspent_r(), fgetspent_r(), sgetspent_r() ¤Ï¤½¤ì¤¾¤ì¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤ÈƱÍͤε¡Ç½¤ò»ý¤Ä¡£

glibc ¤Ç¤Ê¤¤¥·¥¹¥Æ¥à¤Ë¤â¤³¤ì¤é¤ÈƱ¤¸Ì¾Á°¤Î´Ø¿ô¤¬¤¢¤ë¤¬¡¢ ¥×¥í¥È¥¿¥¤¥×¤¬°Û¤Ê¤ë¤³¤È¤â¿¤¤¡£

¹½Â¤ÂÎ

shadow ¥Ñ¥¹¥ï¡¼¥É¹½Â¤ÂÎ¤Ï <shadow.h> ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:

struct spwd {

    char *sp_namp;         /* ¥í¥°¥¤¥ó̾ */

    char *sp_pwdp;         /* °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É */

    long  sp_lstchg;       /* ºÇ½ª¹¹¿·Æü */

    long  sp_min;          /* Êѹ¹¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇûÆü¿ô */

    long  sp_max;          /* Êѹ¹¤ò¤·¤Ê¤¯¤Æ¤â¤è¤¤ºÇĹÆü¿ô */

    long  sp_warn;         /* ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤ëÁ°¤Ë

                              ¥æ¡¼¥¶¤ËÊѹ¹¤Î·Ù¹ð¤ò½Ð¤¹Æü¿ô */

    long  sp_inact;        /* ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤Ã¤Æ¤«¤é

                              ¥¢¥«¥¦¥ó¥È¤¬Ìµ¸ú¤Ë¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô */

    long  sp_expire;       /* 1970-01-01 ¤«¤é¥¢¥«¥¦¥ó¥È¤¬

                              ̵¸ú¤Ë¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô */

    unsigned long sp_flag; /* ͽÌ󤵤ì¤Æ¤¤¤ë */

};

ÊÖ¤êÃÍ

¥Ý¥¤¥ó¥¿¤òÊÖ¤¹´Ø¿ô¤Ï¡¢¤³¤ì°Ê¾å¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¤ä ½èÍýÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç NULL ¤òÊÖ¤¹¡£ int ¤òÊÖ¤êÃͤȤ·¤Æ»ý¤Ä´Ø¿ô¤Ï¡¢ À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¾ì¹ç -1 ¤òÊÖ¤¹¡£

¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤǤʤ¤´Ø¿ô¤Ç¤Ï¡¢ÊÖ¤êÃͤ¬ÀÅŪ¤ÊÎΰè¤ò»Ø¤·¤Æ¤ª¤ê¡¢ °ú¤­Â³¤¤¤Æ¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ë¾å½ñ¤­¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤδؿô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë 0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£

¥¨¥é¡¼

ERANGE
Í¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤ë¡£

¥Õ¥¡¥¤¥ë

/etc/shadow
¥í¡¼¥«¥ë¤Î shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë
/etc/.pwd.lock
¥í¥Ã¥¯¥Õ¥¡¥¤¥ë

¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë <paths.h> ¤ÏÄê¿ô _PATH_SHADOW ¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ ¤³¤ì¤Ï shadow ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£

½àµò

shadow ¥Ñ¥¹¥ï¡¼¥É¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤È´ØÏ¢ API ¤Ï POSIX.1-2001 ¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¤Ê¤¬¤é¡¢Â¿¤¯¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤â ƱÍͤΠAPI ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£

´ØÏ¢¹àÌÜ

getgrnam(3), getpwnam(3), getpwnam_r(3), shadow(5), feature_test_macros(7)