Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

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