chpass(1)
NAME
- chpass, chfn, chsh, ypchpass, ypchfn, ypchsh - add or change
- user
database information
SYNOPSIS
chpass [-a list] [-p encpass] [-e expiretime] [-s newshell]
[user]
chpass [-oly] [-a list] [-p encpass] [-e expiretime] [-s
newshell]
[-d domain] [-h host] [user]
DESCRIPTION
- The chpass utility allows editing of the user database in
- formation associated with user or, by default, the current user.
- The chfn, chsh, ypchpass, ypchfn and ypchsh utilities behave
- identically
to chpass. (There is only one program.) - The information is formatted and supplied to an editor for
- changes.
- Only the information that the user is allowed to change is
- displayed.
- The options are as follows:
- -a The super-user is allowed to directly supply a user
- database
- entry, in the format specified by passwd(5), as an
- argument.
This argument must be a colon (``:'') separated list - of all the
user database fields, although they may be empty. - -p The super-user is allowed to directly supply an en
- crypted pass
- word field, in the format used by crypt(3), as an
- argument.
- -e expiretime
- Change the account expire time. This option is used
- to set the
expire time from a script as if it was done in the - interactive
editor. - -s newshell
- Attempt to change the user's shell to newshell.
- Possible display items are as follows:
Login: user's login name
Password: user's encrypted password
Uid: user's login
Gid: user's login group
Class: user's general classification
Change: password change time
Expire: account expiration time
Full Name: user's real name
Office Location: user's office location (1)
Office Phone: user's office phone (1)
Home Phone: user's home phone (1)
Other Information: any locally defined parameters for- user (1)
Home Directory: user's home directory
Shell: user's login shell - NOTE(1) - In the actual master.passwd file,
- these fields
are comma-delimited fields embedded in the
FullName field. - The login field is the user name used to access the computer
- account.
- The password field contains the encrypted form of the user's
- password.
- The uid field is the number associated with the login field.
- Both of
these fields should be unique across the system (and often - across a group
of systems) as they control file access. - While it is possible to have multiple entries with identical
- login names
and/or identical user id's, it is usually a mistake to do - so. Routines
that manipulate these files will often return only one of - the multiple
entries, and that one by random selection. - The group field is the group that the user will be placed in
- at login.
Since BSD supports multiple groups (see groups(1)) this - field currently
has little special meaning. This field may be filled in - with either a
number or a group name (see group(5)). - The class field references class descriptions in
- /etc/login.conf and is
typically used to initialize the user's system resource lim - its when they
login. - The change field is the date by which the password must be
- changed.
- The expire field is the date on which the account expires.
- Both the change and expire fields should be entered in the
- form ``month
day year'' where month is the month name (the first three - characters are
sufficient), day is the day of the month, and year is the - year.
- Five fields are available for storing the user's full name,
- office
location, work and home telephone numbers and finally other - information
which is a single comma delimited string to represent any - additional
gecos fields (typically used for site specific user informa - tion). Note
that finger(1) will display the office location and office - phone together
under the heading Office:. - The user's home directory is the full UNIX path name where
- the user will
be placed at login. - The shell field is the command interpreter the user prefers.
- If the
shell field is empty, the Bourne shell, /bin/sh, is assumed. - When altering a login shell, and not the super-user, the user may not
- change from a
non-standard shell or to a non-standard shell. Non-standard - is defined
as a shell not found in /etc/shells. - Once the information has been verified, chpass uses
- pwd_mkdb(8) to update
the user database.
ENVIRONMENT
- The vi(1) editor will be used unless the environment vari
- able EDITOR is
set to an alternate editor. When the editor terminates, the - information
is re-read and used to update the user database itself. On - ly the user,
or the super-user, may edit the information associated with - the user.
- See pwd_mkdb(8) for an explanation of the impact of setting
- the
PW_SCAN_BIG_IDS environment variable.
NIS INTERACTION
- The chpass utility can also be used in conjunction with NIS,
- however some
restrictions apply. Currently, chpass can only make changes - to the NIS
passwd maps through rpc.yppasswdd(8), which normally only - permits changes
to a user's password, shell and GECOS fields. Except when - invoked by the
super-user on the NIS master server, chpass (and, similarly, - passwd(1))
cannot use the rpc.yppasswdd(8) server to change other user - information
or add new records to the NIS passwd maps. Furthermore, - rpc.yppasswdd(8)
requires password authentication before it will make any - changes. The
only user allowed to submit changes without supplying a - password is the
super-user on the NIS master server; all other users, in - cluding those
with root privileges on NIS clients (and NIS slave servers) - must enter a
password. (The super-user on the NIS master is allowed to - bypass these
restrictions largely for convenience: a user with root ac - cess to the NIS
master server already has the privileges required to make - updates to the
NIS maps, but editing the map source files by hand can be - cumbersome.
- Note: these exceptions only apply when the NIS master server
- is a FreeBSD
system). - Consequently, except where noted, the following restrictions
- apply when
chpass is used with NIS:
1. Only the shell and GECOS information may be- changed. All
other fields are restricted, even when chpass is - invoked by
the super-user. While support for changing other - fields could
be added, this would lead to compatibility prob - lems with other
NIS-capable systems. Even though the super-user - may supply
data for other fields while editing an entry, the - extra information (other than the password -- see below)
- will be silently
discarded. - Exception: the super-user on the NIS master serv
- er is permitted to change any field.
- 2. Password authentication is required. The chpass
- utility will
prompt for the user's NIS password before effect - ing any
changes. If the password is invalid, all changes - will be discarded.
- Exception: the super-user on the NIS master serv
- er is allowed
to submit changes without supplying a password. - (The superuser may choose to turn off this feature using
- the -o flag,
described below.) - 3. Adding new records to the local password database
- is
discouraged. The chpass utility will allow the - administrator
to add new records to the local password database - while NIS is
enabled, but this can lead to some confusion - since the new
records are appended to the end of the master - password file,
usually after the special NIS '+' entries. The - administrator
should use vipw(8) to modify the local password - file when NIS
is running. - The super-user on the NIS master server is per
- mitted to add
new records to the NIS password maps, provided - the
rpc.yppasswdd(8) server has been started with the - -a flag to
permitted additions (it refuses them by default). - The chpass
utility tries to update the local password - database by
default; to update the NIS maps instead, invoke - chpass with
the -y flag. - 4. Password changes are not permitted. Users should
- use
passwd(1) or yppasswd(1) to change their NIS - passwords. The
super-user is allowed to specify a new password - (even though
the ``Password:'' field does not show up in the - editor template, the super-user may add it back by hand),
- but even the
super-user must supply the user's original pass - word otherwise
rpc.yppasswdd(8) will refuse to update the NIS - maps.
- Exception: the super-user on the NIS master serv
- er is permitted to change a user's NIS password with chpass.
- There are also a few extra option flags that are available
- when chpass is
compiled with NIS support: - -l Force chpass to modify the local copy of a user's
- password infor
mation in the event that a user exists in both the - local and NIS
databases. - -y Opposite effect of -l. This flag is largely redun
- dant since
chpass operates on NIS entries by default if NIS is - enabled.
- -d domain
Specify a particular NIS domain. The chpass utility - uses the
system domain name by default, as set by the domain - name(1) utility. The -d option can be used to override a de
- fault, or to
specify a domain when the system domain name is not - set.
- -h host
Specify the name or address of an NIS server to - query. Normally,
chpass will communicate with the NIS master host - specified in the
master.passwd or passwd maps. On hosts that have - not been configured as NIS clients, there is no way for the pro
- gram to determine this information unless the user provides the
- hostname of a
server. Note that the specified hostname need not - be that of the
NIS master server; the name of any server, master or - slave, in a
given NIS domain will do. - When using the -d option, the hostname defaults to
- ``localhost''.
The -h option can be used in conjunction with the -d - option, in
which case the user-specified hostname will override - the default.
- -o Force the use of RPC-based updates when communicat
- ing with
rpc.yppasswdd(8) (``old-mode''). When invoked by - the super-user
on the NIS master server, chpass allows unrestricted - changes to
the NIS passwd maps using dedicated, non-RPC-based - mechanism (in
this case, a UNIX domain socket). The -o flag can - be used to
force chpass to use the standard update mechanism - instead. This
option is provided mainly for testing purposes.
FILES
/etc/master.passwd the user database
/etc/passwd a Version 7 format password file
/etc/chpass.XXXXXX temporary copy of the password file
/etc/shells the list of approved shells
SEE ALSO
- finger(1), login(1), passwd(1), getusershell(3), lo
- gin.conf(5),
passwd(5), pw(8), pwd_mkdb(8), vipw(8) - and Robert Morris and Ken Thompson, UNIX Password security.
HISTORY
The chpass utility appeared in 4.3BSD-Reno.
BUGS
- User information should (and eventually will) be stored
- elsewhere.
- BSD December 30, 1993