shadow

Autres langues

Langue: ru

Version: 05/25/2008 (fedora - 06/07/09)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

НАЗВАНИЕ

shadow, getspnam - процедуры для работы с файлом шифрованных паролей

СИНТАКСИС

#include <shadow.h>

struct spwd *getspent();

struct spwd *getspnam(char *name);

void setspent();

void endspent();

struct spwd *fgetspent(FILE *fp);

struct spwd *sgetspent(char *cp);

int putspent(struct spwd *p, ФАЙЛ *fp);

int lckpwdf();

int ulckpwdf();

ОПИСАНИЕ

shadow управляет содержимым файла теневых паролей, /etc/shadow. Структура в файле #include:

 struct spwd {
       char                      *sp_namp;  /* имя пользователя */
       char                      *sp_pwdp;  /* шифрованный пароль */
       long int                  sp_lstchg; /* дата последней смены пароля */
       long int                  sp_min;    /* дней должно пройти между сменами пароля. */
       long int                  sp_max;    /* дней перед необходимостью смены пароля */
       long int                  sp_warn;   /* дней вывода предупреждения об устаревании */
       long int                  sp_inact;  /* дней перед тем как учётная запись заблокируется */
       long int                  sp_expire; /* дата устаревания учётной записи */
       unsigned long int sp_flag;   /* зарезервировано */
 }
 

Значение каждого поля:

•sp_namp - указатель на строку с именем пользователя, завершающуюся нулевым символом
•sp_pwdp - указатель на строку с паролем, завершающуюся нулевым символом
•sp_lstchg - количество дней, когда был изменён пароль последний раз, начиная с 1 января 1970 года
•sp_min - количество дней, когда можно не менять пароль
•sp_max - количество дней, которое должно пройти, чтобы нужно было поменять пароль
•sp_warn - количество дней, когда будет выдаваться предупреждение о скором устаревании пароля перед тем как пароль устареет
•sp_inact - количество дней, которые должны пройти после устаревания пароля, когда начинать считать, что учётная запись неактивна и заблокирована
•sp_expire - дней, после которых учётная запись будет заблокирована, начиная с 1 января 1970 года
•sp_flag - зарезервировано

ОПИСАНИЕ

Функции getspent, getspname, fgetspent и sgetspent возвращают указатель на структуру struct spwd. getspent возвращает следующую запись из файла, а fgetspent возвращает следующую запись из заданного канала, предполагая, что это файл правильного формата.sgetspent возвращает указатель на struct spwd, используя предоставленную строку в качестве входящих данных. getspnam ищет начиная с текущей позиции в файле запись по имени name.

Функции setspent и endspent можно использовать для перемещения в начало и конец файла теневых паролей соответственно.

Функции lckpwdf и ulckpwdf используются для получения монопольного доступа к файлу /etc/shadow. lckpwdf пытается выполнить блокировку с помощью pw_lock в течении 15 секунд. Далее выполняется попытка получить вторую блокировку с помощью spw_lock в течении времени оставшегося от первоначальных 15 секунд. При неудаче в любой из блокировок в течении 15 секунд, функция lckpwdf возвращает -1. Если обе блокировки прошли успешно возвращается 0.

ДИАГНОСТИКА

Функции возвращают NULL, если все записи кончились или произошла ошибка во время работы. Функции, возвращающие int, возвращают 0 при успешном выполнении и -1 в случае неудачи.

ПРЕДОСТЕРЕЖЕНИЯ

Данные функции могут использоваться только суперпользователем, так как доступ к файлу теневых паролей ограничен.

ФАЙЛЫ

/etc/shadow

содержит защищаемую информацию о пользователях

СМОТРИТЕ ТАКЖЕ

getpwent(3), shadow(5).