xref: /freebsd/usr.bin/chpass/chpass.1 (revision daf1cffce2e07931f27c6c6998652e90df6ba87e)
1.\" Copyright (c) 1988, 1990, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. All advertising materials mentioning features or use of this software
13.\"    must display the following acknowledgement:
14.\"	This product includes software developed by the University of
15.\"	California, Berkeley and its contributors.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"     @(#)chpass.1	8.2 (Berkeley) 12/30/93
33.\" $FreeBSD$
34.\"
35.Dd December 30, 1993
36.Dt CHPASS 1
37.Os
38.Sh NAME
39.Nm chpass ,
40.Nm chfn ,
41.Nm chsh ,
42.Nm ypchpass ,
43.Nm ypchfn ,
44.Nm ypchsh
45.Nd add or change user database information
46.Sh SYNOPSIS
47.Nm chpass
48.Op Fl a Ar list
49.Op Fl p Ar encpass
50.Op Fl e Ar expiretime
51.Op Fl s Ar newshell
52.Op user
53.Pp
54.Nm chpass
55.Op Fl oly
56.Op Fl a Ar list
57.Op Fl p Ar encpass
58.Op Fl e Ar expiretime
59.Op Fl s Ar newshell
60.Op Fl d Ar domain
61.Op Fl h Ar host
62.Op user
63.Sh DESCRIPTION
64The
65.Nm
66program
67allows editing of the user database information associated
68with
69.Ar user
70or, by default, the current user.
71The information is formatted and supplied to an editor for changes.
72.Pp
73Only the information that the user is allowed to change is displayed.
74.Pp
75The options are as follows:
76.Bl -tag -width indent
77.It Fl a
78The super-user is allowed to directly supply a user database
79entry, in the format specified by
80.Xr passwd 5 ,
81as an argument.
82This argument must be a colon
83.Pq Dq \:
84separated list of all the
85user database fields, although they may be empty.
86.It Fl p
87The super-user is allowed to directly supply an encrypted password field,
88in the format used by
89.Xr crypt 3 ,
90as an argument.
91.It Fl e Ar expiretime
92Change the account expire time. This option is used to set the expire time
93from a script as if it was done in the interactive editor.
94.It Fl s Ar newshell
95Attempt to change the user's shell to
96.Ar newshell .
97.El
98.Pp
99Possible display items are as follows:
100.Pp
101.Bl -tag -width "Other Information:" -compact -offset indent
102.It Login:
103user's login name
104.It Password:
105user's encrypted password
106.It Uid:
107user's login
108.It Gid:
109user's login group
110.It Class:
111user's general classification
112.It Change:
113password change time
114.It Expire:
115account expiration time
116.It Full Name:
117user's real name
118.It Office Location:
119user's office location (1)
120.It Office Phone:
121user's office phone (1)
122.It Home Phone:
123user's home phone (1)
124.It Other Information:
125any locally defined parameters for user (1)
126.It Home Directory:
127user's home directory
128.It Shell:
129user's login shell
130.Pp
131.It NOTE(1) -
132In the actual master.passwd file, these fields are comma-delimited
133fields embedded in the FullName field.
134.El
135.Pp
136The
137.Ar login
138field is the user name used to access the computer account.
139.Pp
140The
141.Ar password
142field contains the encrypted form of the user's password.
143.Pp
144The
145.Ar uid
146field is the number associated with the
147.Ar login
148field.
149Both of these fields should be unique across the system (and often
150across a group of systems) as they control file access.
151.Pp
152While it is possible to have multiple entries with identical login names
153and/or identical user id's, it is usually a mistake to do so.  Routines
154that manipulate these files will often return only one of the multiple
155entries, and that one by random selection.
156.Pp
157The
158.Ar group
159field is the group that the user will be placed in at login.
160Since BSD supports multiple groups (see
161.Xr groups 1 )
162this field currently has little special meaning.
163This field may be filled in with either a number or a group name (see
164.Xr group 5 ) .
165.Pp
166The
167.Ar class
168field references class descriptions in
169.Ar /etc/login.conf
170and is typically used to initialize the user's system resource limits
171when they login.
172.Pp
173The
174.Ar change
175field is the date by which the password must be changed.
176.Pp
177The
178.Ar expire
179field is the date on which the account expires.
180.Pp
181Both the
182.Ar change
183and
184.Ar expire
185fields should be entered in the form
186.Dq month day year
187where
188.Ar month
189is the month name (the first three characters are sufficient),
190.Ar day
191is the day of the month, and
192.Ar year
193is the year.
194.Pp
195Five fields are available for storing the user's
196.Ar full name , office location ,
197.Ar work
198and
199.Ar home telephone
200numbers and finally
201.Ar other information
202which is a single comma delimited string to represent any additional
203gcos fields (typically used for site specific user information).
204Note that
205.Xr finger 1
206will display the office location and office phone together under the
207heading
208.Ar Office: .
209.Pp
210The user's
211.Ar home directory
212is the full
213.Ux
214path name where the user
215will be placed at login.
216.Pp
217The
218.Ar shell
219field is the command interpreter the user prefers.
220If the
221.Ar shell
222field is empty, the Bourne shell,
223.Pa /bin/sh ,
224is assumed.
225When altering a login shell, and not the super-user, the user
226may not change from a non-standard shell or to a non-standard
227shell.
228Non-standard is defined as a shell not found in
229.Pa /etc/shells .
230.Pp
231Once the information has been verified,
232.Nm
233uses
234.Xr pwd_mkdb 8
235to update the user database.
236.Sh ENVIRONMENT
237The
238.Xr vi 1
239editor will be used unless the environment variable
240.Ev EDITOR
241is set to
242an alternate editor.
243When the editor terminates, the information is re-read and used to
244update the user database itself.
245Only the user, or the super-user, may edit the information associated
246with the user.
247.Pp
248See
249.Xr pwd_mkdb 8
250for an explanation of the impact of setting the
251.Ev PW_SCAN_BIG_IDS
252environment variable.
253.Sh NIS INTERACTION
254.Nm Chpass
255can also be used in conjunction with NIS, however some restrictions
256apply.
257Currently,
258.Nm
259can only make changes to the NIS passwd maps through
260.Xr rpc.yppasswdd 8 ,
261which normally only permits changes to a user's password, shell and GECOS
262fields. Except when invoked by the super-user on the NIS master server,
263.Nm
264(and, similarly,
265.Xr passwd 1 )
266can not use the
267.Xr rpc.yppasswdd 8
268server to change other user information or
269add new records to the NIS passwd maps.
270Furthermore,
271.Xr rpc.yppasswdd 8
272requires password authentication before it will make any
273changes. The only user allowed to submit changes without supplying
274a password is the super-user on the NIS master server; all other users,
275including those with root privileges on NIS clients (and NIS slave
276servers) must enter a password.
277(The super-user on the NIS master is allowed to bypass these restrictions
278largely for convenience: a user with root access
279to the NIS master server already has the privileges required to make
280updates to the NIS maps, but editing the map source files by hand can
281be cumbersome.
282.Pp
283Note: these exceptions only apply when the NIS master server is a
284.Fx
285system).
286.Pp
287Consequently, except where noted, the following restrictions apply when
288.Nm
289is used with NIS:
290.Bl -enum -offset indent
291.It
292.Em "Only the shell and GECOS information may be changed" .
293All other
294fields are restricted, even when
295.Nm
296is invoked by the super-user.
297While support for
298changing other fields could be added, this would lead to
299compatibility problems with other NIS-capable systems.
300Even though the super-user may supply data for other fields
301while editing an entry, the extra information (other than the
302password -- see below) will be silently discarded.
303.Pp
304Exception: the super-user on the NIS master server is permitted to
305change any field.
306.Pp
307.It
308.Em "Password authentication is required" .
309.Nm Chpass
310will prompt for the user's NIS password before effecting
311any changes. If the password is invalid, all changes will be
312discarded.
313.Pp
314Exception: the super-user on the NIS master server is allowed to
315submit changes without supplying a password. (The super-user may
316choose to turn off this feature using the
317.Fl o
318flag, described below.)
319.It
320.Em "Adding new records to the local password database is discouraged" .
321.Nm Chpass
322will allow the administrator to add new records to the
323local password database while NIS is enabled, but this can lead to
324some confusion since the new records are appended to the end of
325the master password file, usually after the special NIS '+' entries.
326The administrator should use
327.Xr vipw 8
328to modify the local password
329file when NIS is running.
330.Pp
331The super-user on the NIS master server is permitted to add new records
332to the NIS password maps, provided the
333.Xr rpc.yppasswdd 8
334server has been started with the
335.Fl a
336flag to permitted additions (it refuses them by default).
337.Nm Chpass
338tries to update the local password database by default; to update the
339NIS maps instead, invoke chpass with the
340.Fl y
341flag.
342.It
343.Em "Password changes are not permitted".
344Users should use
345.Xr passwd 1
346or
347.Xr yppasswd 1
348to change their NIS passwords. The super-user is allowed to specify
349a new password (even though the
350.Dq Password:
351field does not show
352up in the editor template, the super-user may add it back by hand),
353but even the super-user must supply the user's original password
354otherwise
355.Xr rpc.yppasswdd 8
356will refuse to update the NIS maps.
357.Pp
358Exception: the super-user on the NIS master server is permitted to
359change a user's NIS password with
360.Nm Ns .
361.El
362.Pp
363There are also a few extra option flags that are available when
364.Nm
365is compiled with NIS support:
366.Bl -tag -width indent
367.It Fl l
368Force
369.Nm
370to modify the local copy of a user's password
371information in the even that a user exists in both
372the local and NIS databases.
373.It Fl y
374Opposite effect of
375.Fl l .
376This flag is largely redundant since
377.Nm
378operates on NIS entries by default if NIS is enabled.
379.It Fl d Ar domain
380Specify a particular NIS domain.
381.Nm Chpass
382uses the system domain name by default, as set by the
383.Xr domainname 1
384command. The
385.Fl d
386option can be used to override a default, or to specify a domain
387when the system domain name is not set.
388.It Fl h Ar host
389Specify the name or address of an NIS server to query. Normally,
390.Nm
391will communicate with the NIS master host specified in the
392.Pa master.passwd
393or
394.Pa passwd
395maps. On hosts that have not been configured as NIS clients, there is
396no way for the program to determine this information unless the user
397provides the hostname of a server. Note that the specified hostname need
398not be that of the NIS master server; the name of any server, master or
399slave, in a given NIS domain will do.
400.Pp
401When using the
402.Fl d
403option, the hostname defaults to
404.Dq localhost .
405The
406.Fl h
407option can be used in conjunction with the
408.Fl d
409option, in which case the user-specified hostname will override
410the default.
411.Pp
412.It Fl o
413Force the use of RPC-based updates when communicating with
414.Xr rpc.yppasswdd 8
415.Pq Dq old-mode .
416When invoked by the super-user on the NIS master server,
417.Nm
418allows unrestricted changes to the NIS passwd maps using dedicated,
419non-RPC-based mechanism (in this case, a
420.Ux
421domain socket). The
422.Fl o
423flag can be used to force
424.Nm
425to use the standard update mechanism instead. This option is provided
426mainly for testing purposes.
427.El
428.Pp
429.Sh FILES
430.Bl -tag -width /etc/master.passwd -compact
431.It Pa /etc/master.passwd
432the user database
433.It Pa /etc/passwd
434a Version 7 format password file
435.It Pa /etc/chpass.XXXXXX
436temporary copy of the password file
437.It Pa /etc/shells
438the list of approved shells
439.El
440.Sh SEE ALSO
441.Xr finger 1 ,
442.Xr login 1 ,
443.Xr passwd 1 ,
444.Xr getusershell 3 ,
445.Xr login.conf 5 ,
446.Xr passwd 5 ,
447.Xr pwd_mkdb 8 ,
448.Xr vipw 8
449.Rs
450.%A Robert Morris
451and
452.%A Ken Thompson
453.%T "UNIX Password security"
454.Re
455.Sh NOTES
456The
457.Xr chfn 1 ,
458.Xr chsh 1 ,
459.Xr ypchpass 1 ,
460.Xr ypchfn 1
461and
462.Xr ypchsh 1
463commands are really only links to
464.Nm Ns .
465.Sh BUGS
466User information should (and eventually will) be stored elsewhere.
467.Sh HISTORY
468The
469.Nm chpass
470command appeared in
471.Bx 4.3 Reno .
472