Linux usermod 命令实战示例

LinuxLinuxBeginner
立即练习

介绍

在本实验中,你将学习如何在 Linux 中使用 usermod 命令修改用户账户属性、更改用户的主组以及禁用用户账户过期功能。usermod 命令是一个强大的工具,用于管理用户账户及其相关设置。通过实际示例,你将获得执行这些用户管理任务的实践经验,这些任务对于系统管理和用户访问控制至关重要。

Linux 命令速查表

修改用户账户属性

在这一步中,我们将学习如何在 Linux 中使用 usermod 命令修改用户账户属性。

usermod 命令用于修改现有用户账户。我们可以使用它来更改用户的登录名、主目录、shell、密码过期日期以及其他属性。

让我们从修改用户的全名和 shell 开始:

sudo usermod -c "John Doe" -s /bin/zsh labex

示例输出:

No changes

-c 选项用于设置用户的全名,-s 选项用于将用户的登录 shell 设置为 /bin/zsh

接下来,让我们更改用户的主目录:

sudo usermod -d /home/newuser labex

示例输出:

usermod: user 'labex' does not exist

哎呀,用户 labex 不存在。让我们先创建该用户:

sudo useradd -m -s /bin/zsh labex

现在,让我们再次尝试更改主目录:

sudo usermod -d /home/newuser labex

示例输出:

No changes

-d 选项用于将用户的主目录设置为 /home/newuser

最后,让我们通过锁定密码来禁用用户账户:

sudo usermod -L labex

示例输出:

No changes

-L 选项用于锁定用户的密码,从而有效禁用该账户。

更改用户的主组

在这一步中,我们将学习如何使用 usermod 命令更改用户的主组。

主组是用户所属的默认组。当用户创建新文件或目录时,文件/目录的所有者将是该用户及其主组。

让我们首先创建一个名为 "developers" 的新组:

sudo groupadd developers

示例输出:

No output

现在,让我们将 labex 用户的主组设置为 "developers":

sudo usermod -g developers labex

示例输出:

No changes

-g 选项用于将用户的主组设置为 "developers"。

为了验证更改,我们可以检查用户的组成员身份:

id labex

示例输出:

uid=1000(labex) gid=1001(developers) groups=1001(developers)

如你所见,用户的主组现在已更改为 "developers"。

接下来,让我们创建一个新文件并检查其所有权:

touch ~/project/test.txt
ls -l ~/project/test.txt

示例输出:

-rw-r--r-- 1 labex developers 0 May 15 12:34 /home/labex/project/test.txt

文件的所有者是 labex 用户和 "developers" 组,符合预期。

禁用用户账户过期

在这一步中,我们将学习如何使用 usermod 命令禁用用户账户的过期日期。

默认情况下,Linux 中的用户账户没有过期日期。然而,你可以为用户账户设置一个过期日期,过期后账户将被禁用。

要为 labex 用户禁用过期日期,我们可以使用 usermod 命令的 -e 选项:

sudo usermod -e "" labex

示例输出:

No changes

-e 选项用于设置用户账户的过期日期。通过将其设置为空字符串 "",我们有效地禁用了过期日期。

为了验证过期日期已被禁用,我们可以使用 chage 命令显示用户的账户信息:

sudo chage -l labex

示例输出:

Last password change                                    : May 15, 2023
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

如你所见,"Account expires" 字段被设置为 "never",表示用户账户的过期日期已被禁用。

现在,让我们创建一个文件并检查其所有权:

touch ~/project/test2.txt
ls -l ~/project/test2.txt

示例输出:

-rw-r--r-- 1 labex developers 0 May 15 12:34 /home/labex/project/test2.txt

文件的所有者是 labex 用户和 "developers" 组,符合预期。

总结

在本实验中,你学习了如何使用 usermod 命令修改用户账户属性,包括更改用户的全名、登录 shell、主目录以及通过锁定密码来禁用账户。你还学习了如何更改用户的主组,包括创建新组并将其设置为用户的主组。这些技能对于在 Linux 环境中管理用户账户和权限非常有用。

Linux 命令速查表