[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Получение доступа к файлу паролей

Стандартные библиотечные функции getpwent(3C), getpwuid(3C) и
getpwnam(3C) возвращают указатель на структуру, которая содержит
разбитую на поля строку из файла /etc/password. Каждая строка в файле
паролей представлена в формате структуры password, определенной
следующим образом:
struct passwd {
        char            *pw_name;
        char            *pw_passwd;
        uid_t   pw_uid;
        gid_t   pw_gid;
        char            *pw_age;
        char            *pw_comment;
        char            *pw_gecos;
        char            *pw_dir;
        char            *pw_shell;
};

Замечание: Поле pw_comment не используется. Другие поля имеют
значения, как описано в password(4).
При первом вызове getpwent(3C) возвращает указатель на первую
структуру password в файле. В следующий раз getpwent(3C) вернет
указатель на следующую структуру password. Последовательные вызовы
могут использоваться для поиска во всем файле.
getpwuid(3C) ищет от начала файла, пока не найдет структуру с полем
идентификатора пользователя равным uid. Возвращает указатель на
найденную структуру.
getpwnam(3C) ищет от начала файла, пока не найдет структуру с полем
регистрационного имени пользователя равным name. Возвращает указатель
на найденную структуру.
Вызов setpwent(3C) предоставляет возможность вести последующий поиск с
помощью функции getpwent(3C) с начала файла. endpwent(3C) может быть
вызвана, чтобы закрыть файл паролей после завершения обработки.
fgetpwent(3C) возвращает указатель на следующую структуру pasword в
потоке f, формат которого соответствует формату /etc/password.
Замечание: эти библиотечные функции возвращают указатель на структуру,
которая расположена в сегменте данных. Следовательно, значения в
структуре должны быть скопированы перед последующими вызовами этих
функций. Если достигнут конец файла или возникнет ошибка чтения, то
функция вернет NULL-указатель.
В SVR4 информация о паролях не хранится больше в /etc/password. Файл
/etc/shadow содержит информацию о паролях.
Хотя библиотечная функция getpw(3C) может быть использована для
получения регистрационного имени по идентификатору пользователя,
Справочное руководство программиста рекомендует использовать
getpwent(3C). getpw(3C) включена только для совместимости с
предшествующими версиями системы.
                  ПОЛУЧЕНИЕ ДОСТУПА К ФАЙЛУ ПАРОЛЕЙ
getpwent(3C)

ИМЯ

      getpwent, getpwuid, getpwnam, setpwent, endpwent, fgetpwent -
      получить доступ к файлу паролей

ИСПОЛЬЗОВАНИЕ

      #include <pwd.h>

      struct passwd *getpwent (void);
      struct passwd *getpwuid (uid_t uid);

      struct passwd *getpwnam (const char *name);

      void setpwent (void);
      void endpwent (void);

      struct passwd *fgetpwent (FILE *f);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

      успех - указатель на структуру

      неуспех - NULL-указатель