#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();
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; /* зарезервировано */ }
Значение каждого поля:
Функции 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
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |