#### 31.13.1 The Data Structure that Describes a User ¶

The functions and data structures for accessing the system user database are declared in the header file `pwd.h`.

Data Type: struct passwd ¶

  The `passwd` data structure is used to hold information about entries in the system user data base. It has at least the following members:

  `char *pw_name`

    The user’s login name.

  `char *pw_passwd`

    Historically, this field would hold the one-way hash of the user’s passphrase. Nowadays, it will almost always be the single character ‘`x`’, indicating that the hash is in the shadow database.

  `uid_t pw_uid`

    The user ID number.

  `gid_t pw_gid`

    The user’s default group ID number.

  `char *pw_gecos`

    A string typically containing the user’s real name, and possibly other information such as a phone number.

  `char *pw_dir`

    The user’s home directory, or initial working directory. This might be a null pointer, in which case the interpretation is system-dependent.

  `char *pw_shell`

    The user’s default shell, or the initial program run when the user logs in. This might be a null pointer, indicating that the system default should be used.