usermod 是一个命令行程序,可让您修改用户的登录信息和所属组。本教程介绍如何使用 usermod 命令将用户加入到指定组。
更改用户默认的登录 Shell,UID,登录名,家目录,更改/修改用户主要组,更改GECOS/用户的全名信息。
修改用户的有效期限或者是到期日期,锁定或者解锁用户帐号,禁止用户登录。
usermod 命令
usermod
命令的语法形式是 usermod [options] USER
。options
是 usermod
命令的选项,可选参数。USER
是 Linux 系统用户名。
只有root用户或具有 sudo 权限的用户才能运行 usermod
命令并修改用户帐户。usermod
成功后不打印任何输出,且退出代码是0。
添加用户到次要组
usermod
最典型的用例是将用户加入指定的组。要将用户添加到次要组,请使用usermod 命令的 -a
和 -G
选项,然后输入组的名称和用户名。
将用户添加次要组时,你应该始终使用 -a
选项追加。如果省略 -a
选项,则用户将从 -G
选项之后未列出的组中删除。
如果要一次将用户添加到多个组,请在 -G
选项指定多个组名称,并使用逗号,
分隔。
例如命令 sudo usermod -a -G games myfreax
会将用户 myfreax
添加到 games
组。如果指定的用户或组不存在,usermod
命令将给出警告且退出代码不为0。
#usermod -a -G GROUP USER
sudo usermod -a -G games myfreax
修改用户主要组
要更改用户的主要组,请使用 usermod
命令的 -g
选项,后跟组名称和用户名。每个用户仅有一个主要组,零个或多个次要组。
因此,如果你修改用户的主要组,用户将会离开与用户名同名的主要组。如果你只是让用户加入组拥有相应权限,请将用户添加到次要组。
例如命令 sudo usermod -g developers myfreax
用户 myfreax
的主要组更改为developers
。
#sudo usermod -g GROUP USER
sudo usermod -g developers myfreax
修改用户信息
要更改 GECOS 或者用户的全名信息,请使用 -c
选项,后跟新的注释和用户名。此信息存储在/etc/passwd
文件中。
GECOS 信息通常用于记录帐户或用户的一般信息,例如他们的真实姓名和电话号码,也可以是自定义的任何信息。
例如命令 sudo usermod -c "Test User" myfreax
将会修改用户 myfreax 的 GECOS 信息。
#usermod -c "GECOS Comment" USER
sudo usermod -c "Test User" myfreax
修改用户家目录
在大多数 Linux 系统上,用户家目录以用户的名称作为目录的名称,并将其存在目录 /home。
如果由于某种原因要更改用户的家目录。请使用 usermod
命令 -d
选项,后跟家目录的绝对路径和用户名。
默认情况下,usermod
命令不会将用户家目录的内容移至新的家目录。要移动家目录所有文件,请使用 -m
选项。如果新的家目录尚不存在,usermod
命令则会创建它。
例如命令 usermod -d /var/www www-data
会将 www-data
用户的家目录更改为/var/www
。
#usermod -d HOME_DIR USER
#usermod -d HOME_DIR -m USER
usermod -d /var/www www-data
修改用户默认登录 Shell
Shell 是 Linux/UNIX 操作系统的用户和计算机的交互接口。可以让用户直接输入命令来执行各种各样的任务。可以运行 cat 命令查看 /etc/shells 文件的内容,找到系统可用的Shell。
默认 Shell 程序是登录系统后运行的 Shell 程序。在大多数Linux系统,默认 Shell 设置为 Bash Shell。
要更改用户的默认 Shell 程序,请使用 usermod 命令的 -s
选项。后跟 Shell 程序的绝对路径和用户名。
例如命令 sudo usermod -s /usr/bin/zsh myfreax
修改用户 myfreax 的默认 Shell 为Zsh。
#usermod -s SHELL USER
cat /etc/shells
sudo usermod -s /usr/bin/zsh myfreax
usermod 命令修改用户UID
UID用户标识符是分配给每个用户的号码。 操作系统使用它来指代用户。要更改用户UID,使用-u
选项调用usermod命令,后接新的UID和用户名。
在修改用户的UID时,usermod命令将会帮助你修改用户在家目录拥有所有权的文件,包括用户的邮箱文件。其他文件的所有权必须手动更改。
例如命令sudo usermod -u 1050 myfreax
,将会修改myfreax
用户的UID为1050。
#usermod -u UID USER
sudo usermod -u 1050 myfreax
修改用户名
尽管不是很经常,但有时您可能想要更改现有用户的名称。usermod 命令的 -l
选项允许你修改用户的名称。
在更改用户名时,您可能还希望修改用户的家目录名称以对应新的用户名变化。要修改用户家目录,请参考 usermod 命令更改用户家目录。
例如命令 sudo usermod -l myfreax lisa
将会修改 myfreax
用户名称为 lisa
。
usermod -l NEW_USER USER
sudo usermod -l myfreax lisa
设置用户有效期限
到期日期是禁用用户帐户的日期。要设置用户的到期日期,请使用 usemod 命令的 -e
选项。
到期日期必须使用格式 YYYY-MM-DD
。要停止帐户的到期时间,请设置一个空的到期日期,表示永远不会到期。
如果你需要验证是否设置成功或者查看用户有效期,请运行命令 chage -l
命令查看用户的有效期。到期日期存储在 /etc/shadow
文件。
例如要在 2022-02-21
禁用用户 myfreax
,请运行命令 sudo usermod -e "2022-02-21" myfreax
。
#sudo usermod -e DATE USER
sudo usermod -e "2022-02-21" myfreax
sudo usermod -e "" myfreax #永远不会过期
sudo chage -l myfreax
Last password change : Jul 24, 2018
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
锁定和解锁用户帐户
要锁定用户请使用 usermod 命令的 -L
选项,被锁定的用户将在加密密码的前面插入一个感叹号!
。 要解锁用户,请使用 usermod
命令的 -U
选项。
/etc/shadow
文件中的密码字段包含感叹号时,用户将无法使用密码登录到系统。 但仍然允许使用其他登录方法。
例如基于密钥的身份验证或使用 su 命令切换用户。如果要锁定用户并禁用所有登录方法,则还需要将到期日期设置为 1。
例如命令 sudo usermod -L myfreax
将会锁定用户myfreax
。
#usermod -L USER
sudo usermod -L myfreax
命令 sudo usermod -L -e 1 myfreax
锁定 myfreax 用户并禁用所有登录方法。
sudo usermod -L -e 1 myfreax
命令 sudo usermod -U myfreax
解锁myfreax用户。
#usermod -U USER
sudo usermod -U myfreax
结论
我们已经向您展示了如何使用 usermod
命令设置用户帐户信息。如有任何疑问,请随时发表评论。