[<<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-указатель