Linux中的Usermod命令

时间:2020-03-05 15:30:07  来源:igfitidea点击:

“ usermod”是一个命令行实用程序,可让我们修改用户的登录信息。

本文介绍如何使用“ usermod”命令将用户添加到组,更改用户shell,登录名,主目录等。

'usermod'命令

'usermod'命令的语法采用以下形式:

usermod [options] USER

只有root或者具有“ sudo”访问权限的用户可以调用“ usermod”并修改用户帐户。

成功后,该命令将不显示任何输出。

将用户添加到组

“ usermod”的最典型用例是将用户添加到组中。

要将现有用户添加到辅助组,请在该组的名称和用户名后使用“ -a -G”选项:

usermod -a -G GROUP USER

如果要一次将用户添加到多个组,请在'-G'选项后指定组,并用','(逗号)分隔,中间不留空格。

例如,要将用户“ theitroad”添加到“游戏”组,我们可以运行以下命令:

sudo usermod -a -G games theitroad

将用户添加到新组时,请始终使用“ -a”(添加)选项。
如果省略“ -a”选项,则将用户从“ -G”选项后未列出的组中删除。

如果该用户或者组不存在,该命令将向我们发出警告。

更改用户主要组

要更改用户的主要组,请在组名和用户名后加上“ -g”选项来调用“ usermod”命令:

sudo usermod -g GROUP USER

在以下示例中,我们将用户“ theitroad”的主要组更改为“ developers”:

usermod -g developers theitroad

每个用户可以恰好属于一个主要组,零个或者多个次要组。

更改用户信息

要更改GECOS(用户的全名)信息,请运行带有'-c'选项的命令,后跟新的注释和用户名:

usermod -c "GECOS Comment" USER

这是显示如何在路上向用户添加其他信息的示例:

usermod -c "Test User" theitroad

此信息存储在“/etc/passwd”文件中。

更改用户主目录

在大多数Linux系统上,用户主目录以用户名命名,并在“/home”目录下创建。

如果由于某种原因要更改用户的主目录,请在新主目录的绝对路径和用户名后加上“ -d”选项,并通过“ -d”选项调用“ usermod”命令:

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程序,请在shell程序的绝对路径和用户名后加上“ -s”选项运行命令:

usermod -s SHELL USER

在下面的示例中,我们将用户shell更改为Zsh:

sudo usermod -s /usr/bin/zsh theitroad

我们可以通过显示“/etc/shells”文件的内容来找出系统上可用的shell。

更改用户UID

UID(用户标识符)是分配给每个用户的号码。
操作系统使用它来指代用户。

要更改用户UID,请在新的UID和用户名后使用'-u'选项调用命令:

usermod -u UID USER

以下示例显示了如何将“ UID”数字更改为“ 1050”:

sudo usermod -u 1050 theitroad

用户拥有的文件的UID位于用户的主目录中,并且用户的邮箱文件将自动更改。
所有其他文件的所有权必须手动更改。

变更使用者名称

尽管不是很经常,但有时我们可能想要更改现有用户的名称。
'-l'选项用于更改用户名:

usermod -l NEW_USER USER

在下面的示例中,我们将用户“ theitroad”重命名为“ lisa”,重命名为“ 1050”:

sudo usermod -l theitroad lisa

更改用户名时,我们可能还希望更改用户的主目录以反映新的用户名。

设置用户到期日期

到期日期是将禁用用户帐户的日期。
要设置用户的到期日期,请使用“ -e”选项:

sudo usermod -e DATE USER

到期日期必须使用格式“ YYYY-MM-DD”设置。

例如,要禁用“ 2022-02-21”上的用户“ theitroad”,我们可以运行以下命令:

sudo usermod -e "2022-02-21" theitroad

要禁用帐户的到期时间,请设置一个空的到期日期:

sudo usermod -e "" theitroad

使用“ chage -l”命令查看用户的到期日期:

sudo chage -l theitroad
Last password change					: May 24, 2016
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.

以下示例显示了如何锁定用户“ theitroad”:

sudo usermod -L theitroad
sudo usermod -L -e 1 theitroad

要解锁用户,请使用'-U'选项运行'usermod':

usermod -U USER