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 sp_lstchg; /* ostatnia zmiana hasła */
int sp_min; /* dni do dozwolonej zmiany */
int sp_max; /* dni przed wymaganą zmianą */
int sp_warn; /* dni ostrzeżenia o wygaśnięciu */
int sp_inact; /* dni przed wyłączeniem konta */
int sp_expire; /* data ważności konta */
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ówAUTOR
Julianne Frances Haugh ([email protected])INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika.