다음 이전 차례

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


다음 이전 차례