Путь к Linux. Руководство по установке и настройке

       

Структуры данных


Библиотека libshadow.a опирается на структуру spwd в которой размещается вся информация извлекаемая из файла /etc/shadow. Ниже приведено определение этой структуры.

 struct spwd

  {

    char *sp_namp;          /* регистрационное имя */

    char *sp_pwdp;          /* зашифрованный пароль */

    sptime sp_lstchg;       /* дата последнего изменения */

    sptime sp_min;          /*  минимальный срок между изменениями */

    sptime sp_max;          /* максимальный срок между изменениями */

    sptime sp_warn;         /* срок начала предупреждения */

    sptime sp_inact;        /* срок блокировки счета после истечения пароля */

    sptime sp_expire;       /* количество дней с 1/1/70 до конца службы пароля   */

    unsigned long sp_flag;  /* зарезервировано для следующих версий */

  };

Shadow Suite позволяет передавать в поле sp_pwdp не только зашифрованный пароль. Предположим, например, что запись о пользователе имеет следующий вид: 

       username:Npge08pfz4wuk;@/sbin/extra:9479:0:10000::::

Это означает, что для дальнейшей аутентификации пользователя должна быть запущена программа /sbin/extra. Этой программе будет передано имя пользователя и ключ, поясняющий причину ее запуска[10]. Для нас это означает, что нам придется использовать функцию pwauth для выполнения собственно аутентификации. Пример, приведенный ниже проиллюстрирует этот подход.



Содержание раздела