The options which apply to the usermod
command are:
-a
, --append
Add the user to the supplementary group(s). Use only with the
-G
option.
-b
, --badnames
Allow names that do not conform to standards.
-c
, --comment
COMMENT
The new value of the user's password file comment field. It
is normally modified using the chfn(1) utility.
-d
, --home
HOME_DIR
The user's new login directory.
If the -m
option is given, the contents of the current home
directory will be moved to the new home directory, which is
created if it does not already exist. If the current home
directory does not exist the new home directory will not be
created.
-e
, --expiredate
EXPIRE_DATE
The date on which the user account will be disabled. The date
is specified in the format YYYY-MM-DD.
An empty EXPIRE_DATE argument will disable the expiration of
the account.
This option requires a /etc/shadow file. A /etc/shadow entry
will be created if there were none.
-f
, --inactive
INACTIVE
The number of days after a password expires until the account
is permanently disabled.
A value of 0 disables the account as soon as the password has
expired, and a value of -1 disables the feature.
This option requires a /etc/shadow file. A /etc/shadow entry
will be created if there were none.
-g
, --gid
GROUP
The group name or number of the user's new initial login
group. The group must exist.
Any file from the user's home directory owned by the previous
primary group of the user will be owned by this new group.
The group ownership of files outside of the user's home
directory must be fixed manually.
The change of the group ownership of files inside of the
user's home directory is also not done if the home dir owner
uid is different from the current or new user id. This is a
safety measure for special home directories such as /.
-G
, --groups
GROUP1[,GROUP2,...[,GROUPN]]]
A list of supplementary groups which the user is also a
member of. Each group is separated from the next by a comma,
with no intervening whitespace. The groups are subject to the
same restrictions as the group given with the -g
option.
If the user is currently a member of a group which is not
listed, the user will be removed from the group. This
behaviour can be changed via the -a
option, which appends the
user to the current supplementary group list.
-l
, --login
NEW_LOGIN
The name of the user will be changed from LOGIN to NEW_LOGIN.
Nothing else is changed. In particular, the user's home
directory or mail spool should probably be renamed manually
to reflect the new login name.
-L
, --lock
Lock a user's password. This puts a '!' in front of the
encrypted password, effectively disabling the password. You
can't use this option with -p
or -U
.
Note: if you wish to lock the account (not only access with a
password), you should also set the EXPIRE_DATE to 1.
-m
, --move-home
Move the content of the user's home directory to the new
location. If the current home directory does not exist the
new home directory will not be created.
This option is only valid in combination with the -d
(or
--home
) option.
usermod
will try to adapt the ownership of the files and to
copy the modes, ACL and extended attributes, but manual
changes might be needed afterwards.
-o
, --non-unique
When used with the -u
option, this option allows to change
the user ID to a non-unique value.
-p
, --password
PASSWORD
The encrypted password, as returned by crypt(3).
Note:
This option is not recommended because the password (or
encrypted password) will be visible by users listing the
processes.
The password will be written in the local /etc/passwd or
/etc/shadow file. This might differ from the password
database configured in your PAM configuration.
You should make sure the password respects the system's
password policy.
-R
, --root
CHROOT_DIR
Apply changes in the CHROOT_DIR directory and use the
configuration files from the CHROOT_DIR directory.
-P
, --prefix
PREFIX_DIR
Apply changes in the PREFIX_DIR directory and use the
configuration files from the PREFIX_DIR directory. This
option does not chroot and is intended for preparing a
cross-compilation target. Some limitations: NIS and LDAP
users/groups are not verified. PAM authentication is using
the host files. No SELINUX support.
-s
, --shell
SHELL
The path of the user's new login shell. Setting this field to
blank causes the system to select the default login shell.
-u
, --uid
UID
The new numerical value of the user's ID.
This value must be unique, unless the -o
option is used. The
value must be non-negative.
The user's mailbox, and any files which the user owns and
which are located in the user's home directory will have the
file user ID changed automatically.
The ownership of files outside of the user's home directory
must be fixed manually.
The change of the user ownership of files inside of the
user's home directory is also not done if the home dir owner
uid is different from the current or new user id. This is a
safety measure for special home directories such as /.
No checks will be performed with regard to the UID_MIN
,
UID_MAX
, SYS_UID_MIN
, or SYS_UID_MAX
from /etc/login.defs.
-U
, --unlock
Unlock a user's password. This removes the '!' in front of
the encrypted password. You can't use this option with -p
or
-L
.
Note: if you wish to unlock the account (not only access with
a password), you should also set the EXPIRE_DATE (for example
to 99999, or to the EXPIRE
value from /etc/default/useradd).
-v
, --add-subuids
FIRST-LAST
Add a range of subordinate uids to the user's account.
This option may be specified multiple times to add multiple
ranges to a users account.
No checks will be performed with regard to SUB_UID_MIN
,
SUB_UID_MAX
, or SUB_UID_COUNT
from /etc/login.defs.
-V
, --del-subuids
FIRST-LAST
Remove a range of subordinate uids from the user's account.
This option may be specified multiple times to remove
multiple ranges to a users account. When both --del-subuids
and --add-subuids
are specified, the removal of all
subordinate uid ranges happens before any subordinate uid
range is added.
No checks will be performed with regard to SUB_UID_MIN
,
SUB_UID_MAX
, or SUB_UID_COUNT
from /etc/login.defs.
-w
, --add-subgids
FIRST-LAST
Add a range of subordinate gids to the user's account.
This option may be specified multiple times to add multiple
ranges to a users account.
No checks will be performed with regard to SUB_GID_MIN
,
SUB_GID_MAX
, or SUB_GID_COUNT
from /etc/login.defs.
-W
, --del-subgids
FIRST-LAST
Remove a range of subordinate gids from the user's account.
This option may be specified multiple times to remove
multiple ranges to a users account. When both --del-subgids
and --add-subgids
are specified, the removal of all
subordinate gid ranges happens before any subordinate gid
range is added.
No checks will be performed with regard to SUB_GID_MIN
,
SUB_GID_MAX
, or SUB_GID_COUNT
from /etc/login.defs.
-Z
, --selinux-user
SEUSER
The new SELinux user for the user's login.
A blank SEUSER will remove the SELinux user mapping for user
LOGIN (if any).