简介
本实验将引导你完成 Linux 系统中的基本用户账户管理操作。你将学习如何创建、修改和删除用户账户,以及如何设置和更改密码。这些是 Linux 系统管理的基本技能。如果你是 Linux 新手,请不要担心——我们将逐步解释所有内容!
本实验将引导你完成 Linux 系统中的基本用户账户管理操作。你将学习如何创建、修改和删除用户账户,以及如何设置和更改密码。这些是 Linux 系统管理的基本技能。如果你是 Linux 新手,请不要担心——我们将逐步解释所有内容!
让我们从创建一个名为 "joker" 的新用户账户开始。
sudo useradd joker
让我们分解一下这个命令:
sudo
是一个命令,它赋予你临时的超级用户(管理员)权限。我们使用它是因为创建新用户需要这些更高权限。useradd
是用于创建新用户的命令。joker
是我们创建的用户名。注意:如果你尝试在没有 sudo
的情况下运行此命令,你将收到“权限被拒绝”的错误提示。这是因为普通用户不允许创建新用户账户——这是系统管理员的任务。
这突出了超级用户和普通用户之间的区别。作为普通用户,你无法创建新用户账户,但通过使用 sudo
,你可以临时提升权限以执行此管理任务。
/etc/passwd
文件:sudo grep -w 'joker' /etc/passwd
/etc/passwd
文件类似于用户账户的电话簿。每一行代表一个用户账户,不同的信息用冒号(:)分隔。
你应该会看到类似以下的输出:
joker:x:5001:5001::/home/joker:/bin/sh
这行内容显示:
/home/joker
,但尚未创建/bin/sh
现在,让我们创建一个名为 "bob" 的用户,并为其分配一个主目录。
sudo useradd -m bob
-m
选项告诉系统为用户创建一个主目录。主目录类似于用户的个人文件夹,用户可以在其中存储其文件和设置。
sudo ls -ld /home/bob
你应该会看到类似以下的输出:
drwxr-x--- 2 bob bob 57 Jan 19 13:33 /home/bob
此输出显示:
d
表示这是一个目录rwxr-x---
显示谁可以在此目录中读取、写入或执行bob
条目显示此目录的用户和组所有者均为 bob57
是目录的大小(以字节为单位)Jan 19 13:33
是目录的创建时间/home/bob
是目录的位置现在我们需要为新用户设置密码。让我们为 "joker" 设置一个密码。
sudo passwd joker
输入密码时不会显示密码内容。这是一种安全功能,旨在防止他人在你输入密码时看到密码。
重要提示:请记住此密码!你稍后在本实验中会需要它。
注意:在实际场景中,请始终使用强密码且确保唯一性!
在后台,Linux 将加密的密码存储在一个名为 /etc/shadow
的安全文件中。这比将它们存储在 /etc/passwd
文件中更安全,因为后者任何人都可以查看。
Linux 允许我们在用户账户创建后更改其各种设置。让我们以更改 joker 的主目录为例。
sudo usermod -d /home/wayne joker
以下是该命令的作用:
usermod
是用于修改用户账户设置的命令-d /home/wayne
指定新的主目录joker
是我们要修改的用户sudo grep -w 'joker' /etc/passwd
-w
用于匹配整个单词,grep
用于在文件中搜索单词。你应该会在输出中看到 joker 的主目录已更新。
我们可以修改的另一个重要设置是用户的默认 Shell。Shell 是解释并运行你在终端中键入的命令的程序。
默认情况下,用户 'joker' 使用 /bin/sh
作为其 Shell。虽然 sh
(Bourne Shell)是一个基本 Shell,存在于大多数类 Unix 系统中,但 bash
(Bourne Again Shell)提供了更多功能,通常更用户友好。
将 joker 的 Shell 更改为 bash 有以下好处:
以下是更改的步骤:
sudo usermod -s /bin/bash joker
sudo grep -w 'joker' /etc/passwd
你应该会在 joker 的条目末尾看到 /bin/bash
。这意味着 bash 现在是 joker 的默认 Shell。
完成此更改后,joker 在登录或打开新的终端会话时将能够访问功能更丰富的 bash 环境。
在 Linux 中,我们使用组来组织用户并管理权限。一个重要的组是 sudo
组,它赋予用户管理权限。让我们以将 joker 添加到 sudo
组为例。
为什么要将用户添加到 sudo 组?
你可能会问:“既然我们可以随时使用 'sudo' 命令,为什么还要将某人添加到 sudo 组?”原因如下:
在实际场景中,你通常会在以下情况下将用户添加到 sudo 组:
请记住,将用户添加到 sudo 组会赋予他们对系统的重大控制权,因此应谨慎操作,仅在必要时进行。
现在,让我们将 joker 添加到 sudo 组:
sudo usermod -aG sudo joker
以下是该命令的作用:
usermod
是用于修改用户账户的命令-aG
表示“追加到组”(添加到组中而不从其他组中移除)sudo
是我们要将用户添加到的组joker
是我们要修改的用户groups joker
你应该会在 joker 的组列表中看到 sudo
。
su - joker
此命令将你从当前用户(labex)切换到 joker 用户。系统会提示你输入 joker 的密码。请记住,这是你之前设置的密码(password123
)。输入密码时,屏幕上不会显示任何字符——这是一种安全功能。
sudo cat /etc/shadow
在提示时再次输入 joker 的密码。你应该能够看到 /etc/shadow
文件的内容,该文件通常仅对 root 可访问。这确认了 joker 现在具有 sudo 权限。
exit
以返回到你的原始用户账户(labex)。注意:在生产环境中,你应非常小心地决定将谁添加到 sudo 组。权力越大,责任越大!
有时,你可能需要暂时禁用用户账户而不删除它。
sudo passwd -l joker
-l
选项用于锁定密码。
su - joker
系统会要求你输入密码。请输入你之前为 joker 设置的密码(如果你遵循了我们的建议,则为 "password123")。
你应该会看到一条“身份验证失败”的消息。这意味着账户已成功锁定。
sudo passwd -u joker
-u
选项用于解锁密码。
su - joker
在提示时输入密码。这次,你应该能够成功切换到 joker 用户。
在继续下一步之前,输入 exit
以返回到你的原始用户账户。
最后,让我们学习如何删除用户。我们将删除之前创建的 "bob" 用户。
sudo userdel -r bob
userdel
命令用于删除用户账户。-r
选项会删除用户的主目录和邮件池。
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob
这两个命令都应返回无结果。这意味着用户及其主目录已成功删除。
恭喜!你已经完成了 Linux 用户账户管理实验。你学会了如何:
你还了解了重要的 Linux 概念,例如 /etc/passwd
文件、主目录、Shell 和用户组。这些是 Linux 系统管理的基本技能。请记住,在实际场景中,管理用户账户时始终遵循组织的安全策略。