´ÙÀ½ ÀÌÀü Â÷·Ê

9. NIS/NYS ÀνºÅç È®ÀÎÇϱâ

¸ðµç°ÍÀÌ Àß µÇ¾ú´Ù¸é(²À ±×·¡¾ß µÇ´Â °Íó·³), ¿©·¯ºÐÀº °£´ÜÇÑ ¸í·ÉÀ¸·Î ¿©·¯ºÐ ÀÇ ÀνºÅçÀ» ÇÑ°ÍÀ» °ËÁõÇÒ ¼ö ÀÖ¾î¾ßÇÑ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀÇ passwdÆÄÀÏÀÌ NIS¿¡ ÀÇÇØ Á¦°øµÈ´Ù°í °¡Á¤ÇÏ°í ¸í·É¾îÀÎ

        % ypcat passwd

´Â NIS passwd ÆÄÀÏÀÇ ³»¿ëÀ» Á¦°øÇØ Áà¾ß ÇÑ´Ù. ¸í·É¾îÀÎ

        % ypmatch userid passwd

(userid´Â ¾î¶² À¯ÀúÀÇ ·Î±ä À̸§ÀÌ´Ù.)Àº NIS Æнº¿öµå ÆÄÀÏ¿¡ ÀÖ´Â À¯ÀúµéÀÇ ¿£Æ®¸®¸¦ Á¦°øÇØ ÁÖ¾î¾ß ÇÑ´Ù. "ypcat"°ú "ypmatch" ÇÁ·Î±×·¥Àº ¿©·¯ºÐÀÇ ÀüÅë ÀûÀÎ NIS ȤÀº NYS¹èÆ÷ÆÇ¿¡ Æ÷ÇԵǾî ÀÖ´Ù.

¸¸¾à ¾î¶² À¯Àú°¡ ·Î±ä ÇÒ ¼ö ¾øÀ» °æ¿ì, ´ÙÀ½°ú °°Àº ÇÁ·Î±×·¥À» Ŭ¶óÀ̾ðÆ®¿¡ ¼­ ½ÇÇà½ÃÄÑ º¸¶ó.

#include <stdio.h>
#include <pwd.h>
#include <sys/types.h>

int
main(int argc, char *argv[])
{
    struct passwd *pwd;

    if(argc != 2)
      {
        fprintf(stderr,"Useage: getwpnam username\n");
        exit(1);
      }

    pwd=getpwnam(argv[1]);

    if(pwd != NULL)
      {
        printf("name.....: [%s]\n",pwd->pw_name);
        printf("password.: [%s]\n",pwd->pw_passwd);
        printf("user id..: [%s]\n",pwd->pw_uid);
        printf("group id.: [%s]\n",pwd->pw_gid);
        printf("gecos....: [%s]\n",pwd->pw_gecos);
        printf("directory: [%s]\n",pwd->pw_dir);
        printf("shell....: [%s]\n",pwd->pw_shell);
      }
    else
      fprintf(stderr,"User \"%s\" not found!\n",argv[1]);

    exit(0);
}
À¯Àú À̸§ÀÇ ÆĶó¹ÌÅÍ¿Í ÇÔ²² ÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é, ÀÌ À¯Àú¿¡ ´ëÇÑ getpw namÇÔ¼ö°¡ ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ¸ðµç Á¤º¸µéÀ» Ãâ·ÂÇÑ´Ù. ÀÌ°ÍÀº ¿©·¯ºÐ¿¡°Ô ¾î¶² ¿£ Æ®¸®°¡ À߸ø µÇ¾ú´ÂÁö ¾Ë·ÁÁÙ °ÍÀÌ´Ù. °¡Àå ÀϹÝÀûÀÎ ¹®Á¦´Â, Æнº¿öµå Çʵ尡 "*"¿Í ÇÔ²² Áߺ¹µÈ °æ¿ìÀÌ´Ù.

GNU C ¶óÀ̺귯¸® 2.1 (glibc 2.1)ÀÌ getent¶ó°í ºÒ¸®´Â Åø°ú °°ÀÌ ³ª¿Â´Ù. ¾Æ ±î °°Àº ¹®Á¦°¡ ÀÖ´ø ½Ã½ºÅÛ¿¡¼­ À§ÀÇ °Í ´ë½Å ÀÌ ÇÁ·Î±×·¥À» »ç¿ëÇ϶ó. ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù.

        getent passwd

ȤÀº

        getent passwd login


´ÙÀ½ ÀÌÀü Â÷·Ê