简介
用户管理是 Linux 系统管理的一个基本方面。无论你是在设置个人计算机、管理服务器,还是在多用户环境中工作,了解如何创建、修改和管理用户账户都是至关重要的。
在这个实验中,你将学习如何使用 usermod
命令来修改用户属性,如用户名、主目录和用户组隶属关系。你将通过实践掌握 Linux 中用于用户管理的关键命令,从而获得在任何 Linux 环境中高效管理用户账户所需的技能。
用户管理是 Linux 系统管理的一个基本方面。无论你是在设置个人计算机、管理服务器,还是在多用户环境中工作,了解如何创建、修改和管理用户账户都是至关重要的。
在这个实验中,你将学习如何使用 usermod
命令来修改用户属性,如用户名、主目录和用户组隶属关系。你将通过实践掌握 Linux 中用于用户管理的关键命令,从而获得在任何 Linux 环境中高效管理用户账户所需的技能。
在这一步中,你将创建一个新用户并学习如何对其进行重命名。当用户角色发生变化,或者你需要在系统中统一用户名时,这是一项常见的任务。
首先,打开你的终端。你应该已经位于 ~/project
目录中。让我们先创建一个名为 temporaryuser
的新用户:
sudo useradd temporaryuser
此命令会在系统中创建一个新的用户账户。默认情况下,useradd
不会创建主目录或设置密码。
现在,让我们检查用户是否创建成功:
grep temporaryuser /etc/passwd
你应该会在输出中看到 temporaryuser
的条目,这表明用户已创建成功。
接下来,我们将使用 usermod
命令将该用户从 temporaryuser
重命名为 permanentuser
:
sudo usermod -l permanentuser temporaryuser
-l
选项表示我们要更改登录名。执行此命令后,之前名为 temporaryuser
的用户现在将被称为 permanentuser
。
让我们验证用户名是否已更改:
grep permanentuser /etc/passwd
你应该会看到新名称为 permanentuser
的用户条目。
现在,让我们为该用户创建并分配一个主目录:
sudo usermod -d /home/permanentuser -m permanentuser
在这个命令中:
-d
指定新的主目录路径-m
将旧主目录中的任何现有内容移动到新主目录(在这种情况下,由于我们的用户之前没有主目录,它将创建主目录)让我们验证主目录是否已创建:
ls -ld /home/permanentuser
你应该会看到为 permanentuser
新创建的主目录。
在 Linux 中,用户组用于组织用户和管理权限。将用户添加到特定的用户组是授予他们访问某些资源或功能的重要方式。
首先,让我们检查我们的用户当前属于哪些用户组:
groups permanentuser
默认情况下,当你使用 useradd
创建用户时,该用户会被分配到一个与用户名同名的主用户组。
现在,让我们检查你的系统上是否存在 sudo
用户组:
grep sudo /etc/group
你应该会看到 sudo
用户组的条目。这个特殊的用户组允许其成员使用 sudo
命令以超级用户权限执行命令。
让我们将我们的用户添加到 sudo
用户组:
sudo usermod -aG sudo permanentuser
在这个命令中:
-a
表示“追加”,这确保我们在将用户添加到该用户组时不会将其从其他用户组中移除-G
指定要将用户添加到的用户组sudo
是用户组的名称permanentuser
是我们要修改的用户让我们验证用户是否已被添加到 sudo
用户组:
groups permanentuser
输出现在应该在用户组列表中包含 sudo
。
你还可以通过查看 /etc/group
文件来检查用户组隶属关系:
grep sudo /etc/group
输出应该在 sudo
用户组的成员列表中包含 permanentuser
。
在 Linux 中,每个用户都有一个默认的 shell,它决定了用户登录时使用的命令行界面。在这一步中,你将学习如何更改用户的登录 shell。
首先,让我们检查分配给我们用户的当前 shell:
grep permanentuser /etc/passwd
查看输出的最后一个字段。它应该显示当前的 shell,对于使用 useradd
且未使用额外选项创建的用户,通常是 /bin/sh
。
现在,让我们将 shell 更改为 Bash,这是一个功能更丰富的 shell:
sudo usermod -s /bin/bash permanentuser
-s
选项指定用户的新登录 shell。
让我们验证 shell 是否已更改:
grep permanentuser /etc/passwd
行尾现在应该显示 /bin/bash
作为 permanentuser
的 shell。
不同的 shell 提供不同的功能和用户体验。Bash 是最受欢迎的 shell 之一,因为它提供了以下高级功能:
Linux 中其他常见的 shell 包括:
/bin/sh
- Bourne Shell,一个基本的 shell/bin/zsh
- Z Shell,具有比 Bash 更多的功能/bin/dash
- Debian Almquist Shell,一个轻量级的 shell用户可以在会话期间使用 chsh
命令在已安装的 shell 之间切换,或者管理员可以像我们刚才那样使用 usermod
更改他们的默认 shell。
系统管理员通常需要创建临时账户,或者确保对账户进行定期审查。在这一步中,你将学习如何为账户设置过期日期,以及查看全面的用户信息。
让我们为 permanentuser
账户设置一个过期日期。这对于临时用户或仅在特定时间段内需要访问权限的承包商来说非常有用。
sudo usermod -e 2023-12-31 permanentuser
-e
选项以 YYYY-MM-DD 格式设置过期日期。在此日期之后,账户将自动禁用。
要验证过期日期是否已设置:
sudo chage -l permanentuser
chage -l
命令显示账户有效期信息。输出将包含一行 “Account expires”,显示你刚刚设置的日期。
在 Linux 中有几个命令可用于查看用户信息。让我们来了解一下:
id permanentuser
此命令显示数字用户 ID(UID)、主组 ID(GID)以及用户所属的所有组。
sudo passwd -S permanentuser
此命令显示密码状态(锁定、过期等)以及上次更改的时间。
cat /etc/passwd | grep -v nologin | grep -v false
此命令过滤密码文件,仅显示可以登录的用户(不包括系统用户)。
cat /etc/group
这将显示系统上定义的所有组,包括系统组和用户组。
了解如何高效地检索用户信息对于系统管理和解决用户访问问题至关重要。
在这个实验中,你学习了 Linux 中重要的用户管理任务:
usermod -l
命令创建用户并对其进行重命名usermod -d -m
为用户设置主目录usermod -aG
将用户添加到附属组usermod -s
更改用户的登录 shellusermod -e
设置账户过期日期id
、chage
等命令以及查看系统文件来查看用户信息这些用户管理技能对于任何 Linux 管理员来说都是基础。usermod
命令提供了一套通用的工具集,可用于修改用户属性,而无需删除和重新创建用户账户。
通过掌握这些命令,你可以在任何 Linux 环境中高效地管理用户账户,无论是单用户工作站、多用户服务器,还是有许多用户需要不同访问级别的企业环境。