实践部分
介绍
本次挑战将测试你对 Linux 文件权限管理的理解。你将运用所学知识查看和修改文件权限及所有权,展现你对基本 Linux 命令的掌握。
成就
完成此挑战后,您将展现出以下方面的熟练程度:
- 用于chown更改文件所有权
- 用于chmod修改文件权限
- 使用touch创建新文件
- 使用ls查看文件详细信息
创建文件
您的第一个任务是在目录中创建一个新文件~/project。
任务
target_file在目录中创建一个名为的文件~/project。
要求
使用touch命令创建文件。
确保该文件已在目录中创建~/project。

更改文件所有者和组
在此步骤中,您将修改所创建的所有权target_file。
任务
将target_file 的所有者更改为user1。
将target_file 的组更改为group1。
要求
使用chown命令更改所有者和组。
文件所有者必须设置为user1。
文件组必须设置为group1。
尖端
您可能需要sudo在该挑战中的某些命令之前使用。sudo允许您以超级用户(root)的权限执行命令。
例子
完成任务后,运行:
ls -l ~/project/target_file
例子
完成任务后,运行:
-rw-rw-r-- 1 user1 group1 0 Jul 29 10:59 target_file

使用该stat命令获取有关文件的详细信息,包括用户和组:
stat filename
设置文件权限
在此最后一步中,您将修改的权限target_file。
任务
将target_file 的权限设置为-rwxrw----。
要求
使用chmod命令更改文件权限。
最终权限必须是-rwxrw----。
例子
完成任务后,运行:
ls -l ~/project/target_file
应该产生类似如下的输出:
-rwxrw---- 1 user1 group1 0 Jul 29 10:59 target_file

学习基础知识
介绍
本实验将指导您完成 Linux 系统中基本的用户帐户管理操作。您将学习如何创建、修改和删除用户帐户,以及如何设置和更改密码。这些都是 Linux 系统管理的基本技能。如果您是 Linux 新手,也不用担心——我们会一步一步讲解!
创建新用户
让我们首先创建一个名为“joker”的新用户帐户。
1.打开终端。在Linux中,终端是一个可以输入命令的文本界面。
2.键入以下命令并按 Enter:
sudo useradd joker
让我们来分析一下:
sudo是一个授予您临时超级用户(管理员)权限的命令。我们使用它是因为创建新用户需要这些更高级别的权限。
useradd是创建新用户的命令。
joker是我们正在创建的用户名。
注意:如果您尝试在不指定 的情况下运行此命令sudo,则会收到“权限被拒绝”错误。这是因为普通用户无权创建新用户帐户——这是系统管理员的保留任务。
这凸显了超级用户和普通用户之间的区别。作为普通用户,您无法创建新的用户帐户,但通过使用sudo,您可以暂时提升权限来执行此管理任务。
3.为了验证用户是否已创建,我们将检查该/etc/passwd文件:
sudo grep -w 'joker' /etc/passwd
该/etc/passwd文件就像用户账户的电话簿。每一行代表一个用户账户,不同的信息用冒号 ( : ) 分隔。
您应该看到类似以下内容的输出:

此行显示:
用户名:joker
密码:x(实际密码安全地存储在其他地方)
用户 ID:5001
组 ID:5001
主目录:/home/joker,但尚未创建
默认 Shell:/bin/sh
-w命令中的选项代表grep“word-regexp”。它指示grep仅匹配整个单词。这意味着当您使用 时-w,grep将仅返回指定模式(在本例中为“joker”)作为完整单词出现的行,而不是作为另一个单词的一部分出现的行。
例如,如果一行包含“joker123”或“thejoker”,则不会匹配,因为在这些情况下,“joker”不是一个独立的词。只有单独包含“joker”的行才会被返回。
创建具有主目录的用户
现在,让我们创建另一个名为“bob”的用户并为他们提供一个主目录。
1运行以下命令:
sudo useradd -m bob
该-m选项告诉系统为用户创建一个主目录。主目录就像一个个人文件夹,用户可以在其中存储自己的文件和设置。
2.让我们验证主目录是否已创建:
sudo ls -ld /home/bob
您应该看到类似以下内容的输出:

此输出显示:
d开头表示这是一个目录
rwxr-x—显示谁可以读取、写入或执行此目录
这两个bob条目表明该目录的用户和组所有者都是 bob
57目录的大小(以字节为单位)
Oct 26 23:46是目录创建的时间
/home/bob是目录的位置
设置用户密码
现在我们需要为新用户设置密码。我们来为“joker”设置一个密码。
1运行以下命令:
sudo passwd joker
2系统会要求您输入两次新密码。在本实验中,请使用简单密码,例如“password123”。
重要提示:您输入的密码不会显示出来。这是 Linux 的一项安全功能,旨在防止他人在您输入密码时看到您的密码。如果您不小心输入了错误的密码,可以重试。
重要提示:请记住此密码!您稍后在实验中会用到它。
3如果成功,您将看到一条消息“passwd:密码更新成功”。
注意:在现实世界中,请始终使用强大、独特的密码!
在后台,Linux 将加密的密码存储在一个名为 的安全文件中/etc/shadow。这比将密码存储在/etc/passwd任何人都可以看到的文件中更安全。

修改用户属性
Linux 允许我们在创建用户帐户后更改其各种设置。我们以更改 joker 的主目录为例。
1运行以下命令:
sudo usermod -d /home/wayne joker
这是它的作用:
usermod是修改用户帐户设置的命令
-d /home/wayne指定新的主目录
joker是我们正在修改的用户
2让我们验证一下变化:
sudo grep -w 'joker' /etc/passwd
-w用于匹配整个单词,并grep用于在文件中搜索该单词。您应该在输出中看到 joker 的主目录已更新。

更改用户 Shell
我们可以修改的另一个重要设置是用户的默认shell。shell是解释并运行你在终端中输入的命令的程序。
默认情况下,用户“joker”使用 Bourne Shell/bin/sh作为其 Shell。虽然shBourne Shell 是大多数类 Unix 系统上的基本 Shell,bash但 Bourne Again Shell 提供了更多功能,并且通常更加用户友好。
将 joker 的 shell 更改为 bash 有几个好处:
更直观的命令行界面
增强的脚本功能
为用户环境提供更好的定制选项
更改方法如下:
1.将 joker 的默认 shell 更改为 bash:
sudo usermod -s /bin/bash joker
2验证更改:
sudo grep -w 'joker' /etc/passwd

/bin/bash你应该在 joker 条目的末尾看到。这意味着 bash 现在是 joker 的默认 shell。
进行此更改后,joker 每次登录或打开新的终端会话时都可以访问功能更丰富的 bash 环境。
将用户添加到组
在 Linux 中,我们使用组来组织用户和管理权限。其中一个重要的组是sudo组,它赋予用户管理权限。我们以将 joker 添加到sudo组中为例。
我们为什么要将用户添加到 sudo 组?
系统管理:sudo 组中的用户可以执行系统范围的管理任务。
软件安装:Sudo组成员可以安装和更新软件包。
配置更改:他们可以修改系统配置文件。
用户管理:可以创建、修改或删除其他用户账户。
您可能会想:“既然我们总是可以使用‘sudo’命令,为什么还要将某人添加到 sudo 组?”原因如下:
便捷性:sudo 组中的用户无需知道 root 密码即可使用 sudo。他们可以使用自己的密码。
粒度控制:系统管理员可以配置 sudo 以允许特定用户仅以超级用户权限运行某些命令。
问责制:与共享 root 密码不同,sudo 会记录谁运行了什么命令,从而提高安全性和可追溯性。
安全性:拥有具有 sudo 访问权限的命名帐户通常比在多个管理员之间共享 root 密码更安全。
在实际情况下,如果出现以下情况,您通常会将用户添加到 sudo 组:
他们是需要执行定期维护任务的系统管理员或 IT 人员。
他们是需要安装特定软件或为工作进行系统更改的开发人员。
他们是高级用户,需要提升权限才能执行某些任务,但您不想向他们提供 root 密码。
请记住,将用户添加到 sudo 组会赋予他们对系统的强大权力,因此应谨慎执行此操作,并且仅在必要时执行。
现在,让我们将 joker 添加到 sudo 组:
1运行此命令:
sudo usermod -aG sudo joker
这是它的作用:
usermod是修改用户账户的命令
-aG表示“附加到组”(添加到组而不从其他组中删除)
sudo是我们要将用户添加到的组
joker是我们正在修改的用户
2验证更改:
groups joker
您应该会看到sudojoker 群组列表。
3要查看此更改的效果,我们需要切换到 joker 用户并尝试需要 sudo 权限的命令:
su - joker
此命令会将您当前的用户 (labex) 切换到 joker 用户。系统将提示您输入 joker 的密码。请记住,这是您之前设置的密码 ( password123)。输入密码时,屏幕上不会显示任何字符——这是一项安全功能。
4以 joker 身份登录后,让我们尝试查看通常需要 root 权限的文件:
sudo cat /etc/shadow
出现提示时,再次输入 joker 的密码。您应该能够看到/etc/shadow文件的内容,该文件通常只有 root 用户才能访问。这确认 joker 现在拥有 sudo 权限。
5完成后,输入exit以返回您的原始用户帐户(labex)。
注意:在生产环境中,你应该非常谨慎地选择将哪些用户添加到 sudo 组。能力越大,责任越大!



锁定和解锁用户帐户
有时,您可能需要暂时禁用用户帐户而不删除它。
1锁定 joker 帐户:
sudo passwd -l joker
该-l选项锁定密码。
2尝试切换到 joker 用户:
系统会要求您输入密码。请输入您之前为 joker 设置的密码(如果您遵循我们的建议,请输入“password123”)。

您应该会看到“身份验证失败”的消息。这意味着该帐户已成功锁定。
3.现在,让我们解锁帐户:
sudo passwd -u joker
该-u选项可解锁密码。
4尝试再次切换到 joker 用户:
su - joker
出现提示时输入密码。这次,你应该能够成功切换到 joker 用户。
键入exit以返回到您的原始用户帐户,然后继续下一步。

删除用户
最后,我们来学习如何删除用户。我们将删除之前创建的用户“bob”。
1删除 bob 及其主目录:
sudo userdel -r bob
该userdel命令删除用户帐户。该-r选项删除用户的主目录和邮件假脱机。
2验证用户是否已被删除:
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob
两个命令都应该不返回任何结果。这意味着用户及其主目录已成功删除。

概括
恭喜!您已完成 Linux 用户帐户管理实验。您已学习了如何:
创建新用户帐户
设置用户密码
修改用户属性,如主目录和默认 shell
将用户添加到组
锁定和解锁用户帐户
删除用户帐户
您还了解了重要的 Linux 概念,例如/etc/passwd文件、主目录、shell 和用户组。这些都是 Linux 系统管理的基本技能。请记住,在实际场景中,管理用户帐户时务必遵循组织的安全策略。
实践
介绍
在本次挑战中,您将运用 Linux 用户帐户管理的知识。您将创建新用户帐户、修改现有用户帐户以及删除用户。本次挑战将测试您对“用户帐户管理”实验中所学概念的理解。
成就
您将展示您使用以下技术的能力:
useradd- 创建新用户
passwd- 更改用户密码
usermod- 修改用户帐户
userdel- 删除用户帐户
创建用户帐户
在此步骤中,您将创建几个具有不同规格的用户帐户。
任务
按顺序完成以下任务:
创建一个名为joker 的用户。
创建一个名为batman 的用户,其主目录位于/home/gotham。
要求
使用该useradd命令创建所有用户。
batman具有与默认主目录不同的主目录。
例子
完成这些任务后,您可以像这样验证用户信息:
sudo grep 'joker\|batman' /etc/passwd
示例输出:
joker:x:5001:5001::/home/joker:/bin/sh
batman:x:5002:5002::/home/gotham:/bin/sh

管理用户密码
在此步骤中,您将设置和更改用户密码。
任务
完成以下任务:
为用户设置密码joker。
更改用户的密码batman。
要求
使用该passwd命令进行所有密码操作。
对于此挑战,请使用简单的密码,例如password123。
例子
设置密码后,您可以检查密码状态:
sudo passwd -S joker
sudo passwd -S batman
示例输出:
joker P 01/19/2024 0 99999 7 -1
batman P 01/19/2024 0 99999 7 -1


修改用户帐户
在此步骤中,您将修改现有的用户帐户。
任务
完成以下任务:
将joker用户的主目录更改为/home/arkham。
将batman用户的 shell 更改为/bin/bash。
要求
使用该usermod命令进行所有修改。
例子
完成这些更改后,您可以验证它们:
sudo grep 'joker\|batman' /etc/passwd
示例输出:
joker:x:5001:5001::/home/arkham:/bin/sh
batman:x:5002:5002::/home/gotham:/bin/bash

删除用户帐户
在最后一步中,您将删除用户帐户。
任务
完成以下任务:
删除joker用户但不删除其主目录。
删除batman用户及其主目录/home/gotham。
要求
使用该userdel命令进行所有删除。
例子
删除这些用户后,您可以验证:
sudo grep 'joker\|batman' /etc/passwd
ls /home/gotham

1200

被折叠的 条评论
为什么被折叠?



