SHADOW(3) Library Calls SHADOW(3) NAME shadow, getspnam - encrypted password file routines SYNTAX #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(); DESCRIPTION shadow manipulates the contents of the shadow password file, /etc/shadow. The structure in the #include file is: struct spwd { char *sp_namp; /* user login name */ char *sp_pwdp; /* encrypted password */ long int sp_lstchg; /* last password change */ long int sp_min; /* days until change allowed. */ long int sp_max; /* days before change required */ long int sp_warn; /* days warning for expiration */ long int sp_inact; /* days before account inactive */ long int sp_expire; /* date when account expires */ unsigned long int sp_flag; /* reserved for future use */ } The meanings of each field are: · sp_namp - pointer to null-terminated user name · sp_pwdp - pointer to null-terminated password · sp_lstchg - days since Jan 1, 1970 password was last changed · sp_min - days before which password may not be changed · sp_max - days after which password must be changed · sp_warn - days before password is to expire that user is warned of pending password expiration · sp_inact - days after password expires that account is considered inactive and disabled The lckpwdf and ulckpwdf routines should be used to insure exclusive access to the /etc/shadow file. lckpwdf attempts to acquire a lock using pw_lock for up to 15 seconds. It continues by attempting to acquire a second lock using spw_lock for the remainder of the initial 15 seconds. Should either attempt fail after a total of 15 seconds, lckpwdf returns -1. When both locks are acquired 0 is returned. DIAGNOSTICS Routines return NULL if no more entries are available or if an error occurs during processing. Routines which have int as the return value return 0 for success and -1 for failure. CAVEATS These routines may only be used by the superuser as access to the shadow password file is restricted. FILES /etc/shadow Secure user account information. SEE ALSO getpwent(3), shadow(5). shadow-utils 4.1.5.1 11/05/2016 SHADOW(3)