shadow/man/shadow.3

143 lines
3.7 KiB
Groff

.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "SHADOW" 3 "" "" ""
.SH NAME
shadow \- encrypted password file routines
.SH "SYNTAX"
.PP
\fI#include <shadow\&.h>\fR
.PP
\fIstruct spwd *getspent();\fR
.PP
\fIstruct spwd *getspnam(char\fR \fI*name\fR\fI);\fR
.PP
\fIvoid setspent();\fR
.PP
\fIvoid endspent();\fR
.PP
\fIstruct spwd *fgetspent(FILE\fR \fI*fp\fR\fI);\fR
.PP
\fIstruct spwd *sgetspent(char\fR \fI*cp\fR\fI);\fR
.PP
\fIint putspent(struct spwd\fR \fI*p,\fR \fIFILE\fR \fI*fp\fR\fI);\fR
.PP
\fIint lckpwdf();\fR
.PP
\fIint ulckpwdf();\fR
.SH "DESCRIPTION"
.PP
\fIshadow\fR manipulates the contents of the shadow password file, \fI/etc/shadow\fR\&. The structure in the \fI#include\fR file is:
.nf
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 */
}
.fi
.PP
The meanings of each field are:
.TP 3
\(bu
sp_namp \- pointer to null\-terminated user name
.TP
\(bu
sp_pwdp \- pointer to null\-terminated password
.TP
\(bu
sp_lstchg \- days since Jan 1, 1970 password was last changed
.TP
\(bu
sp_min \- days before which password may not be changed
.TP
\(bu
sp_max \- days after which password must be changed
.TP
\(bu
sp_warn \- days before password is to expire that user is warned of pending password expiration
.TP
\(bu
sp_inact \- days after password expires that account is considered inactive and disabled
.TP
\(bu
sp_expire \- days since Jan 1, 1970 when account will be disabled
.TP
\(bu
sp_flag \- reserved for future use
.LP
.SH "DESCRIPTION"
.PP
\fIgetspent\fR, \fIgetspname\fR \fIfgetspent\fR, and \fIsgetspent\fR each return a pointer to a \fIstruct spwd\fR\&. \fIgetspent\fR returns the next entry from the file, and \fIfgetspent\fR returns the next entry from the given stream, which is assumed to be a file of the proper format\&. \fIsgetspent\fR returns a pointer to a \fIstruct spwd\fR using the provided string as input\&. \fIgetspnam\fR searches from the current position in the file for an entry matching \fIname\fR\&.
.PP
\fIsetspent\fR and \fIendspent\fR may be used to begin and end, respectively, access to the shadow password file\&.
.PP
The \fIlckpwdf\fR and \fIulckpwdf\fR routines should be used to insure exclusive access to the \fI/etc/shadow\fR file\&. \fIlckpwdf\fR attempts to acquire a lock using \fIpw_lock\fR for up to 15 seconds\&. It continues by attempting to acquire a second lock using \fIspw_lock\fR for the remainder of the initial 15 seconds\&. Should either attempt fail after a total of 15 seconds, \fIlckpwdf\fR returns \-1\&. When both locks are acquired 0 is returned\&.
.SH "DIAGNOSTICS"
.PP
Routines return NULL if no more entries are available or if an error occurs during processing\&. Routines which have \fIint\fR as the return value return 0 for success and \-1 for failure\&.
.SH "CAVEATS"
.PP
These routines may only be used by the super user as access to the shadow password file is restricted\&.
.SH "FILES"
.TP
\fI/etc/shadow\fR
secure user account information
.SH "SEE ALSO"
.PP
\fBgetpwent\fR(3), \fBshadow\fR(5)
.SH "AUTHOR"
.PP
Julianne Frances Haugh (jockgrrl@ix\&.netcom\&.com)