CHPASS(1)                   General Commands Manual                  CHPASS(1)

NAME
     chpass, chfn, chsh – add or change user database information

SYNOPSIS
     chpass [-l location] [-u authname] [-s newshell] [user]

DESCRIPTION
     The chpass utility allows editing of the user database information
     associated with user or, by default, the current user.

     The chpass utility cannot change the user's password on Open Directory
     systems.  Use the passwd(1) utility instead.

     The chfn and chsh 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:

     -l location    If not specified, chpass will perform a search for the
                    user record on all available Open Directory nodes.  When
                    specified, chpass will edit the user record on the
                    directory node at the given location.

     -u authname    The user name to use when authenticating to the directory
                    node containing the user.

     -s newshell    Attempt to change the user's shell to newshell.

     Possible display items are as follows:

           Login:              user's login name
           Uid:                user's login
           Gid:                user's login group
           Generated uid:      user's UUID
           Full Name:          user's real name
           Office Location:    user's office location
           Office Phone:       user's office phone
           Home Phone:         user's home phone
           Home Directory:     user's home directory
           Shell:              user's login shell

     The login field is the user name used to access the computer account.

     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 gid 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 generated uid field is the globally unique identifier (UUID) for the
     user.  The full name field contains the full name of the user.

     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.

     The picture field is the path to a picture to be displayed for the user.

OPEN DIRECTORY
     User database entries are under the control of DirectoryService(8) and
     may be physically located in many different places, including the local
     Directory Service node, and remote LDAP servers.  This version of chpass
     uses Open Directory to change user database information.  It does not
     interact with the historic flat file database /etc/master.passwd

ENVIRONMENT
     The vi(1) editor will be used unless the environment variable EDITOR is
     set to an alternate editor.  When the editor terminates, the information
     is re-read and used to update the user database itself.  Only the user,
     or the super-user, may edit the information associated with the user.

FILES
     /etc/chpass.XXXXXX  temporary file
     /etc/shells         the list of approved shells

EXAMPLES
     Change the shell of the current user to ‘/bin/zsh’:

           chsh -s /bin/zsh

SEE ALSO
     login(1), passwd(1), getusershell(3), DirectoryService(8)

     Robert Morris and Ken Thompson, UNIX Password security.

HISTORY
     The chpass utility appeared in 4.3BSD-Reno.

macOS 15.2                       May 25, 2021                       macOS 15.2