usermod 是一个命令行实用程序,允许您修改用户的登录信息。本文介绍如何使用usermod命令将用户添加到组,更改用户外壳,登录名,主目录等。
usermod是一个命令行实用程序,允许您修改用户的登录信息。
本文介绍如何使用usermod命令将用户添加到组,更改用户shell,登录名,主目录等。
usermod命令
该usermod命令的语法采用以下形式:
usermod [options] USER
只有root或具有sudo访问权限的用户才能调用usermod和修改用户帐户。成功后,该命令将不显示任何输出。
将用户添加到组
的最典型用例usermod是将用户添加到组中。
要将现有用户添加到辅助组,请使用-a -G该组的名称和用户名后面的选项:
usermod -a -G GROUP USER
如果要一次将用户添加到多个组中,请在-G选项之间用,(逗号)分隔,并在中间插入空格。
例如,要将用户添加linuxize到games组,您将运行以下命令:
sudo usermod -a -G games linuxize
-a将用户添加到新组时,请始终使用(附加)选项。如果省略该-a选项,则该用户将从该-G选项后未列出的组中删除。
如果该用户或组不存在,该命令将警告您。
更改用户主要组
要更改用户的主要组,请在该组的名称和用户名后加上选项调用usermod命令-g:
sudo usermod -g GROUP USER
在以下示例中,我们将用户的主要组更改linuxize为developers:
usermod -g developers linuxize
每个用户可以完全属于一个主要组,零个或多个次要组。
更改用户信息
要更改GECOS(用户的全名)信息,请运行带有-c选项的命令,后跟新的注释和用户名:
usermod -c "GECOS Comment" USER
这是显示如何向用户linuxize添加附加信息的示例:
usermod -c "Test User" linuxize
此信息存储在/etc/passwd文件中。
更改用户主目录
在大多数Linux系统上,用户主目录以用户名命名,并在该/home目录下创建。
如果由于某种原因要更改用户的主目录,请在新主目录的绝对路径和用户名之后usermod使用带有-d选项的命令调用命令:
usermod -d HOME_DIR USER
默认情况下,该命令不会将用户主目录的内容移动到新目录。要移动内容,请使用-m选项。如果新目录尚不存在,则会创建它:
usermod -d HOME_DIR -m USER
这里是展示如何改变用户的主目录中的例子www-data来/var/www:
usermod -d /var/www www-data
更改用户默认shell
默认shell程序是登录系统后运行的shell程序。默认情况下,在大多数Linux系统上,默认shell程序设置为Bash Shell。
要更改用户的默认shell程序,请运行命令,并-s在shell程序的绝对路径和用户名后加上以下选项:
usermod -s SHELL USER
在下面的示例中,我们将用户shell更改为Zsh:
sudo usermod -s /usr/bin/zsh linuxize
您可以通过显示/etc/shells文件内容来找出系统上可用的Shell 。
更改用户UID
UID(用户标识符)是分配给每个用户的号码。操作系统使用它来引用用户。
要更改用户UID,请-u在新的UID和用户名后使用以下选项调用命令:
usermod -u UID USER
下面的示例显示如何将“ UID”数字更改为“ 1050”:
sudo usermod -u 1050 linuxize
用户拥有的文件的UID位于用户的主目录中,并且用户的邮箱文件将自动更改。所有其他文件的所有权必须手动更改。
变更使用者名称
尽管不是很经常,但有时您可能想要更改现有用户的名称。该-l选项用于更改用户名:
usermod -l NEW_USER USER
在下面的例子中,我们要重命名的用户linuxize来lisa为“1050”:
sudo usermod -l linuxize lisa
更改用户名时,您可能还希望更改用户的主目录以反映新的用户名。
设置用户到期日期
到期日期是将禁用用户帐户的日期。要设置用户的到期日期,请使用以下-e选项:
sudo usermod -e DATE USER
到期日期必须使用格式设置YYYY-MM-DD。
例如,要在linuxize上禁用用户2022-02-21,您可以运行以下命令:
sudo usermod -e "2022-02-21" linuxize
要禁用帐户的到期时间,请设置一个空的到期日期:
sudo usermod -e "" linuxize
使用以下chage -l命令查看用户的到期日期:
sudo chage -l linuxize
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
到期日期存储在/etc/shadow文件中。
锁定和解锁用户帐户
该-L选项使您可以锁定用户帐户:
usermod -L USER
这些命令将!在加密的密码前面插入一个感叹号()标记。当/etc/shadow文件中的密码字段包含感叹号时,用户将无法使用密码身份验证登录到系统。仍然允许使用其他登录方法,例如基于密钥的身份验证或切换到用户。如果要锁定帐户并禁用所有登录方法,则还需要将到期日期设置为1。
以下示例显示了如何锁定用户iplayio:
sudo usermod -L iplayio
sudo usermod -L -e 1 iplayio
要解锁用户,请运行usermod以下-U选项:
usermod -U USER
结论
我们已经向您展示了如何使用该usermod命令来设置用户帐户信息。