SHADOW(3)

NAZWA
shadow - procedury zakodowanego pliku haseł

SKŁADNIA
#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, FILE *fp);

int lckpwdf();

int ulckpwdf();

OPIS
shadow operuje na zawartości dodatkowego pliku haseł (shadow) /etc/shadow. Plik #include opisuje strukturę

struct spwd {
    char    *sp_namp; /* nazwa użytkownika (login) */
    char    *sp_pwdp; /* zakodowane hasło */
    long int    sp_lstchg; /* ostatnia zmiana hasła */
    long int    sp_min; /* dni do dozwolonej zmiany */
    long int    sp_max; /* dni przed wymaganą zmianą */
    long int    sp_warn; /* dni ostrzeżenia o wygaśnięciu */
    long int    sp_inact; /* dni przed wyłączeniem konta */
    long int    sp_expire; /* data ważności konta */
    unsigned long int    sp_flag; /* zarezerwowane do przyszłego użytku */
}

Znaczenie poszczególnych pól:

sp_namp - wskaźnik do zakończonej przez nul nazwy użytkownika.
sp_pwdp - wskaźnik do zakończonego nul hasła.
sp_lstchg - dni od 1 stycznia 1970; data ostatniej zmiany hasła.
sp_min - dni, przed upływem których hasło nie może być zmienione.
sp_max - dni, po których hasło musi być zmienione.
sp_warn - dni przed datą upływu ważności hasła, od których użytkownik jest ostrzegany od nadchodzącym terminie ważności.
sp_inact - dni po upłynięciu ważności konta, po których konto jest uważane za nieaktywne i wyłączane.
sp_expire - dni od 1 stycznia 1970, data gdy konto zostanie wyłączone.
sp_flag - zarezerwowane do przyszłego użytku.

OPIS
getspent, getspname, fgetspent i sgetspent zwracają wskaźnik do struct spwd. getspent zwraca następną pozycję w pliku, zaś fgetspent następną pozycję z podanego strumienia. Zakłada się, że strumień ten jest plikiem o poprawnym formacie. sgetspent zwraca wskaźnik do struct spwd używając jako wejścia dostarczonego łańcucha. getspnam wyszukuje od bieżącej pozycji w pliku pozycji pasującej do name.

setspent i endspent mogą zostać użyte do odpowiednio, rozpoczęcia i zakończenia dostępu do chronionego pliku haseł (shadow).

Do zapewnienia wyłącznego dostępu do pliku /etc/shadow powinny być używane procedury lckpwdf i ulckpwdf. lckpwdf przez 15 sekund usiłuje uzyskać blokadę przy pomocy pw_lock. Kontynuuje próbę uzyskania drugiej blokady przy pomocy spw_lock przez czas pozostały z początkowych 15 sekund. Jeżeli po upływie 15 sekund którakolwiek z tych prób zawiedzie, to lckpwdf zwraca -1. Jeżeli uzyskano obie blokady, to zwracane jest 0.

DIAGNOSTYKA
Jeżeli nie ma dalszych pozycji lub podczas przetwarzania pojawi się błąd, to procedury zwracają NULL. Procedury zwracające wartość typu int zwracają 0 w przypadku powodzenia a -1 dla porażki.

PRZESTROGI
Procedury te mogą być używane wyłącznie przez superużytkownika, gdyż dostęp do dodatkowego, chronionego pliku haseł jest ograniczony.

PLIKI
/etc/shadow - zakodowane hasła użytkowników

ZOBACZ TAKŻE
getpwent(3), shadow(5)

AUTOR
Julianne Frances Haugh (jockgrrl@ix.netcom.com)