介绍
在本实验中,你将学习如何在 Linux 中使用 usermod 命令修改用户账户属性、更改用户的主组以及禁用用户账户过期功能。usermod 命令是一个强大的工具,用于管理用户账户及其相关设置。通过实际示例,你将获得执行这些用户管理任务的实践经验,这些任务对于系统管理和用户访问控制至关重要。
在本实验中,你将学习如何在 Linux 中使用 usermod 命令修改用户账户属性、更改用户的主组以及禁用用户账户过期功能。usermod 命令是一个强大的工具,用于管理用户账户及其相关设置。通过实际示例,你将获得执行这些用户管理任务的实践经验,这些任务对于系统管理和用户访问控制至关重要。
在这一步中,我们将学习如何在 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 环境中管理用户账户和权限非常有用。