vm: fix potential null deref
[minix.git] / man / man8 / pwdauth.8
blobc1e55dad0ca24f61b16a3c2bb4b7e6cdfda01cb1
1 .SH NAME
2 pwdauth \- password authentication program
3 .SH SYNOPSIS
4 .B /usr/lib/pwdauth
5 .SH DESCRIPTION
6 .B Pwdauth
7 is a program that is used by the
8 .BR crypt (3)
9 function to do the hard work.  It is a setuid root utility so that it is
10 able to read the shadow password file.
11 .PP
12 .B Pwdauth
13 expects on standard input two null terminated strings, the
14 password typed by the user, and the salt.  That is, the two arguments of
15 the
16 .B crypt
17 function.  The input read in a single read call must be 1024 characters or
18 less including the nulls.
19 .B Pwdauth
20 takes one of two actions depending on the salt.
21 .PP
22 If the salt has the form "\fB##\fIuser\fR" then the
23 .I user
24 is used to index the shadow password file to obtain the encrypted password.
25 The input password is encrypted with the one-way encryption function
26 contained within
27 .B pwdauth
28 and compared to the encrypted password from the shadow password file.  If
29 equal then
30 .B pwdauth
31 returns the string "\fB##\fIuser\fR" with exit code 0, otherwise exit
32 code 2 to signal failure.  The string "\fB##\fIuser\fR" is also returned
33 if both the shadow password and the input password are null strings to
34 allow a password-less login.
35 .PP
36 If the salt is not of the form "\fB##\fIuser\fR" then the password is
37 encrypted and the result of the encryption is returned.  If salt and
38 password are null strings then a null string is returned.
39 .PP
40 The return value is written to standard output as a null terminated string
41 of 1024 characters or less including the null.
42 .PP
43 The exit code is 1 on any error.
44 .SH "SEE ALSO"
45 .BR crypt (3),
46 .BR passwd (5).
47 .SH NOTES
48 A password must be checked like in this example:
49 .PP
50 .RS
51 pw_ok = (strcmp(crypt(key, pw->pw_passwd), pw->pw_passwd) == 0);
52 .RE
53 .PP
54 The second argument of crypt must be the entire encrypted password and
55 not just the two character salt.
56 .SH AUTHOR
57 Kees J. Bot (kjb@cs.vu.nl)