钥匙守护者

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)

为新用户创建专用主目录

你已经创建了用户,但忘记了关键的一步!作为负责 Project Phoenix 最终阶段的高级开发者,Brenda 需要一个独立且安全的工作空间,用于存放重要的项目文件和开发工具。你必须确保为她创建主目录。

任务

  • 为用户 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(组)选项。将两者结合使用,可以在不删除用户现有组成员关系的情况下,将用户添加到新组。

示例

成功将用户添加到 developers 组后,你应该能在用户的组列表中看到该组:

$ 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 的未来也因此更加安全!

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