如何在 Linux 中使用 usermod 命令


介绍

usermod  命令是系统管理员可用于用户管理的多个 Linux 命令之一。它用于修改现有的用户帐户详细信息,例如用户名、密码、主目录位置、默认 shell 等。

在本教程中,您将学习如何在 Linux 中使用  usermod  命令来更改用户登录信息。

如何在 Linux 中使用 usermod 命令

先决条件

  • 运行 Linux 的系统

  • 访问命令行

usermod Linux Syntax

usermod  命令的基本语法是:

usermod [options] [username]

usermod  命令修改包含用户帐户信息的配置文件。这些文件是:

  • /etc/passwd  – 有关用户帐户的信息

  • /etc/shadow  – 与用户安全相关的信息

  • /etc/组  – 有关组的信息

  • /etc/gshadow  – 组安全相关信息

  • /etc/login.defs  – 影子密码套件配置

可以使用nanovim等文本编辑器直接编辑上述文件。但是, usermod 使该过程更快,更直接。

用户模式命令示例

下面是  usermod  选项的列表,以及特定于选项的语法和示例。

向用户添加信息

将  usermod  与  -c  选项结合使用,可以将有关用户的一段信息添加到  /etc/passwd  文件中。这有助于识别用户,并为与用户相关的临时注释提供空间。

sudo usermod -c "[information]" [username]

使用  getent  命令检查  /etc/passwd  文件中与用户相关的条目。

使用 usermod -c 选项添加有关用户的信息性消息

该条目现在包含使用  usermod  添加的注释。

设置用户的主目录

当您在 Linux 中创建用户时,系统会自动在  /home/[username]  中为他们创建一个主文件夹。要更改用户个人文件夹的位置,请使用  -d  选项:

sudo usermod -d [directory-location] [username]

使用 usermod -d 选项更改用户个人文件夹的位置

上面的示例将用户的个人文件夹从  /home/mike  更改为  /var/mike 。 getent  命令确认更改成功。

-d  选项不会将个人文件夹的内容移动到新位置。如果用户以前使用主文件夹来存储其文件,请添加  -m  选项以移动用户主目录的内容:

sudo usermod -d [location] -m [username]

对于上面示例中的用户,该命令如下所示:

sudo usermod -d /var/mike -m mike

**

注意:不能使用  usermod  更改当前登录用户的名称。此外,在更改用户的 ID (UID) 时,请确保用户当前未执行任何进程。

设置用户帐户到期日期

默认情况下,用户帐户在 Linux 中不会过期。使用  chage -l  命令检查用户的帐户账龄信息:

sudo chage -l [username]

使用 chage -l 命令检查用户帐户安全信息

如上面的示例所示,帐户设置为不过期。通过使用带有  -e  选项 的 usermod  来更改此设置。它允许您指定帐户到期的年、月和日期:

sudo usermod -e [YYYY-MM-DD] [username]

通过再次使用  chage -l  命令检查帐户来确认更改是否成功:

使用 usermod -e 命令设置用户帐户到期日期

设置用户的外壳程序

使用  usermod -s  更改单个用户的默认 shell:

sudo usermod -s [shell] [username]

如果更改成功, getent  将在条目末尾显示新的默认 shell。

使用 usermod -s 更改单个用户的默认 shell

更改用户的 UID

UID(用户标识符)是在使用 useradd 命令创建帐户时分配给 用户的唯一 编号。 /etc/login.defs  文件定义 UID 值的范围。使用  usermod -u  命令更改用户的 UID:

sudo usermod -u [new-UID] [username]

在  passwd  条目中,找到紧跟在用户名和密码后面的 UID:

使用 usermod -u 命令更改用户的 UID

更改用户的登录名

通过添加  -l  选项更改用户名。语法如下:

sudo usermod -l [newname] [oldname]

使用 usermod -l 选项更改用户名

如上面的示例所示,使用旧用户名检查  /etc/passwd  文件不再返回数据。但是,现在在新名称下可以使用相同的数据。

**

注意:** NAME_REGEX   /etc/adduser.conf  文件中的值定义了创建新用户名的标准。但是, usermod  不会强制执行相同的标准来修改用户名。虽然任何字符串都可以作为  usermod -l ** 的新用户名,但仍建议遵守标准命名约定。

锁定和解锁用户

使用  -L  选项锁定用户帐户。

sudo usermod -L [username]

使用  -L  锁定帐户后,用户的登录尝试在键入密码时将失败:

使用用户模式 -L 锁定帐户后无法对其进行身份验证

要解锁之前锁定的帐户,请键入  usermod -U ,后跟帐户名称:

sudo usermod -U [username]

使用用户模式 -U 解锁帐户

正如您在上面的示例中看到的,密码现在再次起作用,并且 zsh shell 将启动。

为用户设置密码

为用户设置密码的最常见方法是使用 passwd 命令。 usermod  还具有用于创建密码的专用  -p  选项:

sudo usermod -p [password] [username]

但是,不建议使用此创建密码的方法,因为密码在  /etc/shadow  文件中可见。如果使用 grep 命令在  /etc/shadow  文件中查找用户名,则该条目将包含使用  usermod  创建的密码的纯文本版本:

使用 usermod 命令的 -p 选项创建用户登录密码

更改用户的主要组

使用  usermod -g 更改用户 的主要组:

sudo usermod -g [group] [username]

id  命令确认主组的成功更改:

使用用户模式 -g 更改用户的主要组

将用户添加到补充组

除了其主要组之外,用户还可以是任意数量的补充组的成员。 -G  选项将用户添加到补充组:

sudo usermod -G [group] [username]

使用 -G 选项将用户添加到补充组

但是,如果用户已经属于某些补充组, 则 usermod -G  会从这些组中删除这些组,并仅添加到命令之后指定的组。

在下面的示例中,用户已经是补充组的成员。 -a  和  -G  选项的组合将用户添加到指定的组,并将他们保留在它们已经是其成员的补充组中。

sudo usermod -a -G [group] [username]

使用 usermod -a -G 命令将用户添加到补充组

使用多个选项更改用户帐户

在一个命令中使用多个选项,以便更方便地编辑用户。下面的示例显示了一个  usermod  命令, 该命令:

  • 更改主文件夹和外壳程序,

  • 设置帐户到期日期,

  • 添加注释,

  • 更改 UID,以及

  • 将用户添加到补充组。

sudo usermod -d [home-folder] -s [shell] -e [YYYY-MM-DD] -c "[comment]" -u [UID] -aG [group] [username]

使用 usermod 命令的多个选项编辑用户帐户

显示所有用户模式命令和参数

要阅读  usermod  帮助,请使用  --help  参数:

usermod --help

有关选项和函数的更详细列表,请使用 man 命令

man usermod

结论

本指南解释了  usermod  命令的使用及其众多选项。阅读后,您应该知道如何使用该命令修改用户帐户设置和登录信息。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM