passwd

Change the login password or create new user names (UNIX)

Syntax:

passwd [-dmSs] [-t iterations] [-w width] [name]

Runs on:

QNX Neutrino

Options:

-d
Use the DES password hash.
-m
Use the MD5 password hash.
-S
Use the SHA-512 password hash (the default).
-s
Use the SHA-256 password hash.
-t iterations
The number of times to iterate the hash. The default is 1000.
-w width
The width of the salt, in multiples of 8 bytes. The minimum is 8, and the default is 16.
name
The username whose password is to be changed or for whom an account is to be created (root only).

Description:

You can use the passwd utility to change your login password, and if you're logged in as the superuser (root), you can create a new user account.

Note: This utility needs to have the setuid ("set user ID") bit set in its permissions. If you use mkefs, mketfs, mkifs, or mkqnx6fs on a Windows host to include this utility in an image, use the perms attribute to specify its permissions explicitly, and the uid and gid attributes to set the ownership correctly.

If you're changing your password, passwd prompts for the old password and then for the new password. The new password must be entered twice, to avoid typing mistakes. Only the owner or the superuser may change a password.

To create a new user account, type:

passwd new_user_name
Note: Make sure that the user name is no longer than 14 characters; otherwise, that user won't be able to log in.

passwd file

When creating a new user account, passwd prompts for information, such as the user's group list, home directory, and shell. The /etc/default/passwd file (see "Files," below) specifies the default values for these prompts. You can edit this file to modify passwd's behavior to suit local requirements.

The /etc/passwd file contains the following fields, separated by colons:

username:has_passwd:userid:groupid:misc:home_directory:initial_command

If the has_passwd field contains an x character, a password has been defined for this user. If no character is present, no password has been defined. Use of any other character is reserved and may cause side-effects for the user.

The groupid field contains a group number. Users may log in under the groupid listed in their /etc/passwd file entry without being listed as a member of that group in the /etc/group file.

The misc field stores supplemental information, with commas separating subfields. Usually, the first subfield contains the user's "real life" name. Some utilities use this information.

The initial_command field contains the initial command to run after the user has successfully logged in. This command and any arguments it takes must be separated by tab or space characters. As the command is spawned directly (not run by a shell), no shell expansions is performed. There is no mechanism for specifying command-line arguments that contain space or tab characters themselves. (Quoting isn't supported.)

If no initial_command is specified, /bin/sh is used.

Files:

/etc/.pwlock
This file is created by passwd to indicate to other instances of passwd that the password file is currently being modified. When passwd finishes, the file is removed. See "Caveats," below.
/etc/group
This file defines the known groups for the system. It associates group names with a numerical ID and a list of usernames who are members of the group.

Entries in this file appear in the following format:

groupname:x:groupid:user[,user]...

The x represents the group password; QNX Neutrino doesn't support group passwords.

/etc/passwd
Contains the user account entries. The format of entries in this file are as follows:
username:has_passwd:userid:groupid:misc:home_directory:initial_command
/etc/shadow
Contains encoded versions of the actual passwords for user accounts. The passwords themselves aren't stored in the /etc/passwd file.
/etc/opasswd, /etc/oshadow
When passwd modifies a password file, it first locks the password files with the /etc/.pwlock file, then copies the contents of the current /etc/passwd and /etc/shadow files to /etc/opasswd and /etc/oshadow, respectively. If passwd is killed before it finishes writing the updated file, the password files may be restored from these backup versions. See "Caveats," below.
/etc/default/passwd
Specifies the settings that the passwd utility uses when you create a new user account. If you're the system administrator, you can edit this file. The settings include the following, shown with the value specified by default in this file:
Setting Default Description
BASEDIR=dirname /home The base directory under which user directories are created.
SHELL=progname /bin/sh The shell to use for the login shell field in new password entries.
UIDRANGE=low-[high] 100- The valid range of values for new user IDs. You can omit the high component, indicating no upper bound, but you still need the dash.
GIDRANGE=low-[high] 100- The valid range of values for group IDs. As with UIDRANGE, you can omit the high component if there's no upper bound.
DUPDIROK Not set. If specified, passwd lets you select an existing directory as a new user's home directory.
DUPUIDOK Not set. If specified, passwd lets you select an existing user ID for a new user name. This is generally discouraged, because it allows many user names to be mapped to one user ID.
NOPASSWORDOK NOPASSWORDOK If specified, passwd lets you set up user accounts that don't require a password to log in.
STRICTPASSWORD Not set. If specified, passwd requires all passwords to contain at least two types of characters (e.g., alphabetic and punctuation).
INSISTANT=retries 6 The number of times passwd asks non-root users if they really want to set up their account with no password. This variable is ignored if NOPASSWORDOK is set.
PROFILE=basename .profile The name to use for the shell's initialization file in the user's home directory. The file specified by DEFPROFILE (below) is copied there when you set up a new account.
DEFPROFILE=filename /etc/skel/.profile The path to a default shell-initialization file that's copied to a new user's PROFILE when you set up the account.
QNXCRYPT Not set. If this is set, passwd uses the old QNX 4 encryption method, instead of the default UNIX encryption method.

Caveats:

The passwd utility creates the /etc/.pwlock file during updates to the password database. If for some reason the system crashes at an inopportune moment and leaves this file present, passwd will refuse to work until the file is removed by the system administrator. If the password files are somehow left in an inconsistent state as a result of the crash, the system administrator should also copy /etc/oshadow to /etc/shadow and copy /etc/opasswd to /etc/passwd.