DAY 05: 密钥守护者

LinuxBeginner
立即练习

介绍

欢迎来到 LabEx Corporation 的最后一天!从最初的侦察任务到成为堡垒守护者,这是一段不可思议的旅程。现在,公司将你提升到最受信任的职位:Project Phoenix 的密钥守护者

首席技术官(CTO)将你拉到一边进行关键简报:「Project Phoenix 即将进入最后阶段,我们需要对谁能访问我们的系统进行绝对控制。我们聘请了一位新的高级开发人员 Brenda Smith,她将领导最后的冲刺工作。不幸的是,我们还发现之前的承包商 John Doe 在你之前调查的安全事件中进行了未经授权的访问。他的访问权限需要立即撤销。」

作为密钥守护者,你现在掌控着通往 Project Phoenix 的人类门户。你的用户管理决策将决定谁能为 TechNova 最重要的项目做出贡献,以及谁必须因安全原因被拒之门外。

这是你展示 Linux 用户管理完全掌握能力的时刻。Project Phoenix 的未来取决于你是否有能力为需要的人授予访问权限,并拒绝那些可能危及系统的人。让我们完成这项任务吧!

为系统引入新开发人员

你的第一个任务是为 Brenda Smith 创建一个新的用户账户,她是将领导 Project Phoenix 最后开发阶段的高级开发人员。TechNova 的政策规定,用户名应遵循 first_initial.last_name 的格式。

任务

  • 为 Brenda Smith 创建一个新的用户账户。

要求

  • 用户名必须是 b.smith
  • 使用 useradd 命令将新用户添加到系统中。你需要 sudo 权限。

提示

  • 本挑战期望使用标准的 useradd 命令,而不是交互式的 adduser 辅助工具。
  • 记得使用 sudo 以管理员权限执行命令。

示例

成功创建新用户账户后,你应该能在系统的用户数据库中看到该用户条目:

$ grep "b.smith" /etc/passwd
b.smith:x:5002:5004::/home/b.smith:/bin/sh

用户账户将使用系统分配的用户 ID 和组 ID 创建。你可以使用以下命令验证账户是否存在并查看其详细信息:

$ id b.smith
uid=5002(b.smith) gid=5004(b.smith) groups=5004(b.smith)

为新用户创建专用主目录

你已经创建了用户,但遗漏了一个关键步骤!Brenda 作为领导 Project Phoenix 最后阶段的高级开发人员,需要她自己的安全工作空间来存储关键的项目文件和开发工具。你必须确保为她创建主目录。

任务

  • 为用户 b.smith 创建一个位于 /home/b.smith 的主目录。

要求

  • 必须为用户 b.smith 创建主目录。
  • 你应该使用 useradd 命令的选项来自动创建主目录。如果你已经创建了没有主目录的用户,你可能需要先删除该用户,然后正确地重新创建它。
  • 有效的解决方案包括 -m--create-home,该标志可以出现在用户名之前或之后。

提示

  • 要删除用户,可以使用 userdel 命令。例如:sudo userdel b.smith
  • useradd 命令有一个特定的标志可以为用户创建主目录。查看 man useradd 手册页,寻找类似 -m--create-home 的选项。

示例

创建带有主目录的用户后,你应该能在主目录列表中看到新创建的目录:

$ ls -la /home/
drwxr-xr-x 1 root root 47 Sep 3 16:32 .
drwxr-xr-x 1 root root 62 Sep 3 16:31 ..
-rw-r--r-- 1 root root 58 Jul 18 2024 .zshrc
drwxr-x--- 2 b.smith b.smith 57 Sep 3 16:32 b.smith
drwxr-x--- 2 j.doe j.doe 57 Sep 3 16:31 j.doe
drwxr-x--- 1 labex labex 4096 Sep 3 16:35 labex

主目录将由用户所有,并具有受限权限(仅所有者和组可访问)。要查看内容,你可能需要适当的权限或使用 sudo:

$ sudo ls -la /home/b.smith/
drwxr-x--- 2 b.smith b.smith 57 Sep 3 16:32 .
drwxr-xr-x 1 root root 47 Sep 3 16:32 ..
-rw-r--r-- 1 b.smith b.smith 220 Sep 3 16:32 .bash_logout
-rw-r--r-- 1 b.smith b.smith 3771 Sep 3 16:32 .bashrc
-rw-r--r-- 1 b.smith b.smith 655 Sep 3 16:32 .profile

为新用户分配初始密码

用户账户 b.smith 已创建,但目前处于锁定状态。Brenda 没有密码就无法访问 Project Phoenix 系统来开始她的领导工作。你的下一个任务是为她的账户设置一个初始的安全密码。

任务

  • 为用户 b.smith 设置密码。

要求

  • 使用标准的 Linux 命令更改用户密码。
  • 系统会提示你输入并确认新密码。你可以使用任何简单的密码,例如 password123

提示

  • 设置或更改密码的命令是 passwd
  • 由于你是为其他用户更改密码,因此需要 sudo 权限。语法是 sudo passwd <username>

示例

成功设置密码后,用户账户应该在 shadow 文件中有一个密码哈希值。你可以通过检查 shadow 文件来验证这一点(注意:这需要 root 权限):

$ sudo grep "^b.smith:" /etc/shadow
b.smith:$y$j9T$XbJLH9LJgY518Th4qcd1V0$NrfHOJ2MGm/1OhLGfpfMQkvPasV23Eenhwl9bA0i8O4:20334:0:99999:7:::

将新开发人员添加到「developers」组

为了确保 Brenda 能够访问你整周都在保护的 Project Phoenix 文件和存储库,必须将她添加到 developers 组。这是你在 TechNova 工作期间一直使用的同一个组,它拥有项目所需的特殊权限。

任务

  • 将用户 b.smith 添加到 developers 组。

要求

  • 用户 b.smith 必须是 developers 组的成员。
  • 不应删除用户现有的组成员身份。

提示

  • usermod 命令用于修改用户账户。
  • 查找 -a(追加)和 -G(组)标志。将它们一起使用可确保将用户添加到新组,而不会将其从现有组中删除。

示例

成功将用户添加到开发人员组后,你应该能在用户的组列表中看到该组成员身份:

$ groups b.smith
b.smith : b.smith developers

你也可以使用 id 命令来查看更详细的组信息:

$ id b.smith
uid=5002(b.smith) gid=5004(b.smith) groups=5004(b.smith),5003(developers)

用户现在应该可以访问 developers 组可访问的文件和目录。你可以检查组文件以确认该组存在:

$ grep "^developers:" /etc/group
developers:x:5003:b.smith

注意 b.smith 出现在组成员列表中。这确认了用户已成功添加到组中,同时保留了他们现有的组成员身份。

暂时禁用离职员工的账户

现在是你本周的最后一项任务,也是 Project Phoenix 最关键的安全行动。John Doe (j.doe) 在你之前的调查中被确定在安全事件期间可能进行了未经授权的访问。CTO 已下令将其从所有 TechNova 系统中立即移除。然而,法律和合规团队需要保留他的文件以进行正在进行的安全审计,因此你必须锁定该账户,而不是将其完全删除。

任务

  • 锁定用户 j.doe 的账户以防止登录。

要求

  • 必须锁定用户 j.doe 的账户。
  • 不要删除用户或其主目录。

提示

  • 你可以使用带有 -L(锁定)选项的 usermod 命令。
  • 或者,passwd 命令有一个 -l(锁定)标志,可以达到同样的效果。
  • 记得使用 sudo

示例

你可以通过检查 shadow 文件来验证账户是否已锁定:

$ sudo grep "^j.doe:" /etc/shadow
j.doe:!:20334:0:99999:7:::

注意密码字段开头的感叹号 (!) —— 这表示账户已锁定。原始密码哈希值保留在 ! 之后,以便将来可能解锁。

总结

恭喜你,密钥守护者!你已成功完成了在 LabEx Corporation 的精彩第一周,并为 Project Phoenix 的最后冲刺提供了安全保障。

在这充满变革的一周里,你从一名新的初级系统管理员成长为 TechNova 最关键系统的受信任守护者。在最后的挑战中,你掌握了基本的用户管理命令:

  • 为领导 Project Phoenix 完成工作的高级开发人员创建了新用户账户。
  • 为关键团队成员配置了安全的主目录。
  • 使用 passwd 实施了稳健的密码策略。
  • 管理了组成员身份,以确保对 Project Phoenix 资源的正确访问。
  • 通过禁用未经授权的访问同时保留审计跟踪,确保了系统的安全。

从最初的侦察到数字架构、日志调查、安全实施,最后到用户管理——你已经展示了专业系统管理员的完整技能组合。CTO 已经确认了你的永久职位,并正在讨论晋升机会。

Project Phoenix 现在掌握在安全的手中,得益于你的奉献和专业知识,TechNova 的未来是安全的!

✨ 查看解决方案并练习✨ 查看解决方案并练习✨ 查看解决方案并练习✨ 查看解决方案并练习✨ 查看解决方案并练习