]> CyberLeo.Net >> Repos - FreeBSD/releng/9.0.git/blob - share/man/man5/passwd.5
Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
[FreeBSD/releng/9.0.git] / share / man / man5 / passwd.5
1 .\"     $NetBSD: passwd.5,v 1.12.2.2 1999/12/17 23:14:50 he Exp $
2 .\"
3 .\" Copyright (c) 1988, 1991, 1993
4 .\"     The Regents of the University of California.  All rights reserved.
5 .\" Portions Copyright (c) 1994, Jason Downs.  All rights reserved.
6 .\"
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\"    notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\"    notice, this list of conditions and the following disclaimer in the
14 .\"    documentation and/or other materials provided with the distribution.
15 .\" 3. All advertising materials mentioning features or use of this software
16 .\"    must display the following acknowledgement:
17 .\"     This product includes software developed by the University of
18 .\"     California, Berkeley and its contributors.
19 .\" 4. Neither the name of the University nor the names of its contributors
20 .\"    may be used to endorse or promote products derived from this software
21 .\"    without specific prior written permission.
22 .\"
23 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 .\" SUCH DAMAGE.
34 .\"
35 .\"     From: @(#)passwd.5      8.1 (Berkeley) 6/5/93
36 .\" $FreeBSD$
37 .\"
38 .Dd May 8, 2007
39 .Dt PASSWD 5
40 .Os
41 .Sh NAME
42 .Nm passwd ,
43 .Nm master.passwd
44 .Nd format of the password file
45 .Sh DESCRIPTION
46 The
47 .Nm
48 files are the local source of password information.
49 They can be used in conjunction with the Hesiod domains
50 .Sq Li passwd
51 and
52 .Sq Li uid ,
53 and the
54 .Tn NIS
55 maps
56 .Sq Li passwd.byname ,
57 .Sq Li passwd.byuid ,
58 .Sq Li master.passwd.byname ,
59 and
60 .Sq Li master.passwd.byuid ,
61 as controlled by
62 .Xr nsswitch.conf 5 .
63 .Pp
64 For consistency, none of these files should ever be modified
65 manually.
66 .Pp
67 The
68 .Nm master.passwd
69 file is readable only by root, and consists of newline separated
70 records, one per user, containing ten colon
71 .Pq Ql \&:
72 separated
73 fields.
74 These fields are as follows:
75 .Bl -tag -width ".Ar password" -offset indent
76 .It Ar name
77 User's login name.
78 .It Ar password
79 User's
80 .Em encrypted
81 password.
82 .It Ar uid
83 User's id.
84 .It Ar gid
85 User's login group id.
86 .It Ar class
87 User's login class.
88 .It Ar change
89 Password change time.
90 .It Ar expire
91 Account expiration time.
92 .It Ar gecos
93 General information about the user.
94 .It Ar home_dir
95 User's home directory.
96 .It Ar shell
97 User's login shell.
98 .El
99 .Pp
100 The
101 .Nm
102 file is generated from the
103 .Nm master.passwd
104 file by
105 .Xr pwd_mkdb 8 ,
106 has the
107 .Ar class ,
108 .Ar change ,
109 and
110 .Ar expire
111 fields removed, and the
112 .Ar password
113 field replaced by a
114 .Ql *
115 character.
116 .Pp
117 The
118 .Ar name
119 field is the login used to access the computer account, and the
120 .Ar uid
121 field is the number associated with it.
122 They should both be unique
123 across the system (and often across a group of systems) since they
124 control file access.
125 .Pp
126 While it is possible to have multiple entries with identical login names
127 and/or identical user id's, it is usually a mistake to do so.
128 Routines
129 that manipulate these files will often return only one of the multiple
130 entries, and that one by random selection.
131 .Pp
132 The login name must never begin with a hyphen
133 .Pq Ql - ;
134 also, it is strongly
135 suggested that neither upper-case characters or dots
136 .Pq Ql \&.
137 be part
138 of the name, as this tends to confuse mailers.
139 No field may contain a
140 colon
141 .Pq Ql \&:
142 as this has been used historically to separate the fields
143 in the user database.
144 .Pp
145 In the
146 .Nm master.passwd
147 file,
148 the
149 .Ar password
150 field is the
151 .Em encrypted
152 form of the password, see
153 .Xr crypt 3 .
154 If the
155 .Ar password
156 field is empty, no password will be required to gain access to the
157 machine.
158 This is almost invariably a mistake, so authentication components
159 such as PAM can forcibly disallow remote access to passwordless accounts.
160 Because this file contains the encrypted user passwords, it should
161 not be readable by anyone without appropriate privileges.
162 .Pp
163 A password of
164 .Ql *
165 indicates that
166 password authentication is disabled for that account
167 (logins through other forms of
168 authentication, e.g., using
169 .Xr ssh 1
170 keys, will still work).
171 The field only contains encrypted passwords, and
172 .Ql *
173 can never be the result of encrypting a password.
174 .Pp
175 An encrypted password prefixed by
176 .Ql *LOCKED*
177 means that the account is temporarily locked out
178 and no one can log into it using any authentication.
179 For a convenient command-line interface to account locking, see
180 .Xr pw 8 .
181 .Pp
182 The
183 .Ar group
184 field is the group that the user will be placed in upon login.
185 Since this system supports multiple groups (see
186 .Xr groups 1 )
187 this field currently has little special meaning.
188 .Pp
189 The
190 .Ar class
191 field is a key for a user's login class.
192 Login classes
193 are defined in
194 .Xr login.conf 5 ,
195 which is a
196 .Xr termcap 5
197 style database of user attributes, accounting, resource,
198 and environment settings.
199 .Pp
200 The
201 .Ar change
202 field is the number of seconds from the epoch,
203 .Dv UTC ,
204 until the
205 password for the account must be changed.
206 This field may be left empty to turn off the password aging feature.
207 .Pp
208 The
209 .Ar expire
210 field is the number of seconds from the epoch,
211 .Dv UTC ,
212 until the
213 account expires.
214 This field may be left empty to turn off the account aging feature.
215 .Pp
216 The
217 .Ar gecos
218 field normally contains comma
219 .Pq Ql \&,
220 separated subfields as follows:
221 .Pp
222 .Bl -tag -width ".Ar office" -offset indent -compact
223 .It Ar name
224 user's full name
225 .It Ar office
226 user's office number
227 .It Ar wphone
228 user's work phone number
229 .It Ar hphone
230 user's home phone number
231 .El
232 .Pp
233 The full
234 .Ar name
235 may contain a ampersand
236 .Pq Ql &
237 which will be replaced by
238 the capitalized login
239 .Ar name
240 when the
241 .Ar gecos
242 field is displayed or used
243 by various programs such as
244 .Xr finger 1 ,
245 .Xr sendmail 8 ,
246 etc.
247 .Pp
248 The
249 .Ar office
250 and phone number subfields are used by the
251 .Xr finger 1
252 program, and possibly other applications.
253 .Pp
254 The user's home directory,
255 .Ar home_dir ,
256 is the full
257 .Ux
258 path name where the user
259 will be placed on login.
260 .Pp
261 The
262 .Ar shell
263 field is the command interpreter the user prefers.
264 If there is nothing in the
265 .Ar shell
266 field, the Bourne shell
267 .Pq Pa /bin/sh
268 is assumed.
269 The conventional way to disable logging into an account once and for all,
270 as it is done for system accounts,
271 is to set its
272 .Ar shell
273 to
274 .Xr nologin 8 .
275 .Sh HESIOD SUPPORT
276 If
277 .Sq Li dns
278 is specified for the
279 .Sq Li passwd
280 database in
281 .Xr nsswitch.conf 5 ,
282 then
283 .Nm
284 lookups occur from the
285 .Sq Li passwd
286 Hesiod domain.
287 .Sh NIS SUPPORT
288 If
289 .Sq Li nis
290 is specified for the
291 .Sq Li passwd
292 database in
293 .Xr nsswitch.conf 5 ,
294 then
295 .Nm
296 lookups occur from the
297 .Sq Li passwd.byname ,
298 .Sq Li passwd.byuid ,
299 .Sq Li master.passwd.byname ,
300 and
301 .Sq Li master.passwd.byuid
302 .Tn NIS
303 maps.
304 .Sh COMPAT SUPPORT
305 If
306 .Sq Li compat
307 is specified for the
308 .Sq Li passwd
309 database, and either
310 .Sq Li dns
311 or
312 .Sq Li nis
313 is specified for the
314 .Sq Li passwd_compat
315 database in
316 .Xr nsswitch.conf 5 ,
317 then the
318 .Nm
319 file also supports standard
320 .Sq Li + Ns / Ns Li -
321 exclusions and inclusions, based on user names and netgroups.
322 .Pp
323 Lines beginning with a
324 .Ql -
325 (minus sign) are entries marked as being excluded
326 from any following inclusions, which are marked with a
327 .Ql +
328 (plus sign).
329 .Pp
330 If the second character of the line is a
331 .Ql @
332 (at sign), the operation
333 involves the user fields of all entries in the netgroup specified by the
334 remaining characters of the
335 .Ar name
336 field.
337 Otherwise, the remainder of the
338 .Ar name
339 field is assumed to be a specific user name.
340 .Pp
341 The
342 .Ql +
343 token may also be alone in the
344 .Ar name
345 field, which causes all users from either the Hesiod domain
346 .Nm
347 (with
348 .Sq Li passwd_compat: dns )
349 or
350 .Sq Li passwd.byname
351 and
352 .Sq Li passwd.byuid
353 .Tn NIS
354 maps (with
355 .Sq Li passwd_compat: nis )
356 to be included.
357 .Pp
358 If the entry contains non-empty
359 .Ar uid
360 or
361 .Ar gid
362 fields, the specified numbers will override the information retrieved
363 from the Hesiod domain or the
364 .Tn NIS
365 maps.
366 As well, if the
367 .Ar gecos ,
368 .Ar dir
369 or
370 .Ar shell
371 entries contain text, it will override the information included via
372 Hesiod or
373 .Tn NIS .
374 On some systems, the
375 .Ar passwd
376 field may also be overridden.
377 .Sh FILES
378 .Bl -tag -width ".Pa /etc/master.passwd" -compact
379 .It Pa /etc/passwd
380 .Tn ASCII
381 password file, with passwords removed
382 .It Pa /etc/pwd.db
383 .Xr db 3 Ns -format
384 password database, with passwords removed
385 .It Pa /etc/master.passwd
386 .Tn ASCII
387 password file, with passwords intact
388 .It Pa /etc/spwd.db
389 .Xr db 3 Ns -format
390 password database, with passwords intact
391 .El
392 .Sh COMPATIBILITY
393 The password file format has changed since
394 .Bx 4.3 .
395 The following awk script can be used to convert your old-style password
396 file into a new style password file.
397 The additional fields
398 .Ar class ,
399 .Ar change
400 and
401 .Ar expire
402 are added, but are turned off by default.
403 Class is currently not implemented, but change and expire are; to set them,
404 use the current day in seconds from the epoch + whatever number of seconds
405 of offset you want.
406 .Bd -literal -offset indent
407 BEGIN { FS = ":"}
408 { print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 }
409 .Ed
410 .Sh SEE ALSO
411 .Xr chpass 1 ,
412 .Xr login 1 ,
413 .Xr passwd 1 ,
414 .Xr crypt 3 ,
415 .Xr getpwent 3 ,
416 .Xr login.conf 5 ,
417 .Xr netgroup 5 ,
418 .Xr nsswitch.conf 5 ,
419 .Xr adduser 8 ,
420 .Xr nologin 8 ,
421 .Xr pw 8 ,
422 .Xr pwd_mkdb 8 ,
423 .Xr vipw 8 ,
424 .Xr yp 8
425 .Pp
426 .%T "Managing NFS and NIS"
427 (O'Reilly & Associates)
428 .Sh HISTORY
429 A
430 .Nm
431 file format appeared in
432 .At v6 .
433 .Pp
434 The
435 .Tn NIS
436 .Nm
437 file format first appeared in SunOS.
438 .Pp
439 The Hesiod support first appeared in
440 .Fx 4.1 .
441 It was imported from the
442 .Nx
443 Project, where it first appeared in
444 .Nx 1.4 .
445 .Sh BUGS
446 User information should (and eventually will) be stored elsewhere.
447 .Pp
448 Placing
449 .Sq Li compat
450 exclusions in the file after any inclusions will have
451 unexpected results.