Next Previous Contents

## 9. Проверка NIS/NYS

Если все хорошо (как должно быть), то вы можете проверить ваши настройки несколькими простыми командами. Просмотрите, например, ваш файл паролей для использования с NIS, командой

> `

>         % ypcat passwd

> `

которая должна вам выдать содержимое файла паролей NIS. Команда

> `

>         % 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,"Usage: 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..: [%d]\n", pwd->pw_uid);
>           printf("group id.: [%d]\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);
>      }

> `

Запуск этой программы с именем пользователя в качестве параметра выдаст всю информацию функции getpwnam для этого пользователя. Это должно показать вам, что запись пользователя корректна. Большинство проблем связано с тем, что поле пароля перекрывается символом "*".

GNU C Library 2.1 (glibc 2.1) поставляется с инструментом, называемым getent. Используйте эту программу вместо данной выше. Вы можете попытаться выполнить:

> `

>        getent passwd

> `

или

> `

>        getent passwd login

> `

Next Previous Contents