介绍
Kali Linux 是用于安全测试的 Linux 发行版。本课程从使用安全工具之前必需的日常终端技能讲起。你无需具备 Linux 或 Docker 使用经验。
你的 LabEx 机器运行 Ubuntu,并在其中承载一个独立的 Kali 容器。容器拥有自己的文件和程序,同时共享宿主机的 Linux 内核。实验会为你准备好这个环境;你将以普通用户身份进入 Kali,识别系统、阅读命令帮助,并保存一份简短的环境记录。第一个实验没有扫描目标。
整个实验都使用 Terminal 界面。你不需要桌面、Docker Hub 账户,也无需安装软件。
进入 Kali 并写入第一个文件
本步骤中,你将进入准备好的 Kali 环境,确认用户和工作目录,并写入一个简短的文本文件。
终端是显示文本的窗口;shell 是读取命令的程序。点击 Terminal,输入命令,然后按 Enter。只复制命令,不要复制命令前显示的提示符。
初始终端位于 Ubuntu 宿主机上,用户为 labex。实验提供了名为 kali 的命令,用于在准备好的容器中打开 Bash shell。容器已经配置完成,你无需自行运行 Docker 命令。
kali
现在提示符如下所示:
kali@kali-training:/home/labex/project$
其中,kali 是用户名,kali-training 是容器名称,路径则是当前目录。末尾的 $ 通常表示普通用户;root 管理员的提示符通常使用 #。提示符可以自定义,因此请使用 whoami 确认身份,该命令会打印有效用户名:
whoami
预期输出:
kali
你正在以普通用户身份工作,而非 root。课程后续将介绍管理操作。
使用 pwd(打印工作目录)确定以相对文件名写入的文件会保存在哪里:
pwd
预期输出:
/home/labex/project
以 / 开头的路径是绝对路径。这个项目目录以相同路径与 Ubuntu 宿主机共享,所以保存在这里的文件仍可供 LabEx 访问。其他容器路径(例如 /etc/os-release)属于 Kali。容器用户的家目录是 /home/kali,它与共享项目目录不同。
echo 会打印一条消息。单引号将这些词作为一个整体保留为字面文本。shell 的 > 运算符会将输出发送到文件而非屏幕,创建文件或替换其已有内容。用它创建第一个练习文件:
echo 'Kali practice started' > welcome.txt
此时不应出现输出:消息已写入当前目录中的 welcome.txt。cat 会读取文件并打印内容:
cat welcome.txt
预期输出:
Kali practice started
这确认了你能在 Kali 工作区中创建和读取文件。保留当前 Kali shell,继续下一步。如果关闭了终端,请打开新的 Terminal,再次运行 kali。在 Kali 内输入 exit 会返回宿主机,不会删除容器或项目文件。
识别 Kali 并保存发行版信息
本步骤中,你将读取 Kali 的系统标识,使用命令自带的帮助,并保存发行版记录,而不预先假定某个版本号。
Linux 发行版提供 /etc/os-release 文件,其中的文本条目采用 KEY=value 格式。/etc 存放系统配置和标识文件。在步骤 1 打开的 Kali shell 中读取该文件:
cat /etc/os-release
在输出中找到以下条目:
PRETTY_NAME="Kali GNU/Linux Rolling"
...
ID=kali
...
ID 标识发行版;PRETTY_NAME 是便于阅读的名称。以 VERSION 开头的条目在存在时描述发行版版本,例如 VERSION_ID、VERSION 或 VERSION_CODENAME。目前验收通过的实验镜像包含这些字段,但并非所有 Linux 发行版都提供相同的版本字段。请读取实际看到的值,不要从教程复制版本号。如果 ID 为 ubuntu,你仍在宿主机上:运行 kali,然后再次执行命令。
Kali 是滚动发行版,其软件会随时间变化。本实验使用固定镜像,确保练习可复现。识别环境无需更新或升级软件。精简 Kali 容器也不会包含全部安全工具。
为了帮助你了解命令的用法,许多程序提供 --help 选项。选项会改变请求的行为;--help 请求显示用法信息,而非读取文件。用 cat 试一试:
cat --help
在开头附近,你应该看到:
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.
[FILE] 是文件路径的占位符,不是要原样输入的文本。方括号表示可选部分。帮助说明确认,文件内容通常会发送到标准输出,也就是你一直在终端上阅读的内容。
复用步骤 1 中的 > 来保存输出。这次命令产生的是实际发行版信息,而非手动输入的消息:
cat /etc/os-release > kali-release.txt
该命令读取 /etc/os-release,并在项目目录中写入一个独立文件,不会修改系统标识文件。读取保存的记录:
cat kali-release.txt
输出应与之前读取的源文件一致,包括 ID=kali 和所有可用的 VERSION 条目。完整保留这个小文件,既能保留原始值和引号,也无需使用尚未学到的过滤命令。现在你已经在 /home/labex/project/kali-release.txt 中保存了一份可读的环境记录。
总结
你从 Ubuntu 宿主机进入了准备好的 Kali 容器,认识了普通用户提示符,并确认了身份和工作目录。你创建并读取了文本文件,使用了 cat --help,还将 Kali 的实际发行版信息保存到了共享工作区。
在配套挑战中,你将在全新、独立的环境中运用相同技能,生成准确的发行版记录。



