Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   getpw - восстанавливает строку пароля

getpw(3) восстанавливает строку пароля


ОБЗОР

#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>


int getpw(uid_t uid, char *buf);


ОПИСАНИЕ

Функция getpw() заново создаёт в буфере строку пароля для пользователя с ID uid в буфере buf. Возвращаемый буфер содержит строку в формате

name:passwd:uid:gid:gecos:dir:shell

Структура passwd определена в <pwd.h> следующим образом:

struct passwd {
    char   *pw_name;       /* имя пользователя */
    char   *pw_passwd;     /* пароль пользователя */
    uid_t   pw_uid;        /* идентификатор пользователя */
    gid_t   pw_gid;        /* идентификатор группы */
    char   *pw_gecos;      /* информация о пользователе */
    char   *pw_dir;        /* домашний каталог */
    char   *pw_shell;      /* программная оболочка */
};

Подробней о полях этой структуры смотрите в passwd(5).


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

При успешном выполнении getpw() возвращается 0; при ошибке возвращается -1, а в errno содержится код ошибки.

Если uid не найден в базе данных паролей, то getpw() возвращает -1, присваивает errno значение 0 и buf не изменяется.


ОШИБКИ

0 или ENOENT Отсутствует пользователь с соответствующим uid.

EINVAL Значение buf равно NULL.

ENOMEM Недостаточно памяти для структуры passwd.

ФАЙЛЫ


/etc/passwd файл, содержащий базу паролей


АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
getpw() безвредность в потоках: безвредно (MT-Safe locale)


СООТВЕТСТВИЕ СТАНДАРТАМ

SVr2.

ДЕФЕКТЫ

Функция getpw() является в каком-то смысле опасной, так как может переполнить предоставляемый ей буфер buf. Она заменена на getpwuid(3).