📚 网络安全Kali学习系列 · Linux系统深度
01 环境搭建与文件权限入门(当前篇)
02 SUID/SGID特殊权限与ACL
03 进程管理与服务管理(systemd)
04 网络配置与包管理
05 Bash脚本编写基础
06 Vim高效操作

环境搭建与文件权限入门

入门级在树莓派4B上搭建Kali Linux环境,掌握Linux文件权限核心操作
读完本篇你将能:在树莓派4B上完成Kali Linux的SSD裸机安装与启动配置,通过SSH从Mac远程管理树莓派,理解并运用Linux文件权限体系(rwx、chmod、chown)控制文件访问。
📑 本文目录
01为什么选择Kali Linux on树莓派
02下载镜像与烧录SSD
03首次启动与初始配置
04SSH远程管理配置
05Linux文件权限体系
06动手练习

01 为什么选择Kali Linux on树莓派

Kali Linux 是 Offensive Security 维护的滚动更新发行版,预装 600+ 渗透测试工具,是安全行业的标准工作环境。2026 年 8 月当前最新版本为 2026.2,每季度发布一次稳定点版本 [$TRAE_REF](https://www.kali.org/get-kali/)。

选择树莓派 4B 作为安全工具专用机有三个原因:ARM 架构原生支持 Kali ARM 镜像,低功耗(15W)可 7x24 长期部署,体积小巧便于携带到不同网络环境进行测试。搭配 SSD 硬盘后,系统响应速度和工具加载速度远超 SD 卡方案。

先看 SSD 与 SD 卡的实际差异:

特性 SSD(USB 3.0) microSD 卡
顺序读写 500MB/s+ 80-100MB/s
随机I/O 优秀(数千IOPS) 较差(几十IOPS)
使用寿命 TBW级,数年 写入次数有限,易损坏
系统响应 流畅运行Burp/Metasploit 工具加载明显卡顿
推荐场景 长期运行、日常练习 临时测试、快速部署

SD 卡在频繁写入日志、数据库操作时容易触发磨损,导致系统文件损坏。SSD 通过 USB 3.0 接口连接树莓派 4B,随机 I/O 性能提升数十倍,运行 Metasploit 数据库查询、Nmap 扫描结果存储时差异立竿见影。

02 下载镜像与烧录SSD

选择正确的镜像

树莓派 4B 搭载 ARM Cortex-A72(64位)处理器,选择 64 位镜像以获得完整性能。官方提供两个版本:32 位(armhf)和 64 位(arm64),我们使用 64 位版本。

Bash
# 下载 64 位 Kali Linux ARM 镜像(约 2GB)
wget https://kali.download/arm-images/kali-2026.2/kali-linux-2026.2-raspberry-pi-arm64.img.xz

下载完成后验证文件完整性:

Bash
# 验证 SHA256 校验和
shasum -a 256 kali-linux-2026.2-raspberry-pi-arm64.img.xz
# 输出示例: a3f5b7c9...(与官网校验和对比)

在Mac上烧录SSD

推荐使用 Raspberry Pi Imager,它内置镜像写入和引导分区配置功能,比手动 dd 更安全:

Bash(Mac终端)
# 在 Mac 上安装 Raspberry Pi Imager
brew install --cask raspberry-pi-imager
# 或安装 balenaEtcher 作为替代
brew install --cask balenaetcher

烧录步骤:

1 将 SSD 通过 USB 3.0 硬盘盒连接到 Mac
2 打开 Raspberry Pi Imager,选择「Use custom」加载下载的 .img.xz 文件
3 选择 SSD 对应的设备节点(如 /dev/disk4),点击写入
4 写入完成后,将 SSD 连接到树莓派 4B 的 USB 3.0(蓝色)接口

配置SSD启动

树莓派 4B 默认从 SD 卡启动,需要更新 bootloader 固件才能从 USB SSD 启动。先用 SD 卡启动一次树莓派(可用 Raspberry Pi OS),执行以下命令更新固件:

Bash(树莓派终端)
# 更新 bootloader 固件到最新版本
sudo rpi-eeprom-update -a
sudo reboot
# 重启后检查 bootloader 版本
vcgencmd bootloader_version
⚠️ 常见错误
直接插入 SSD 就能启动 — 树莓派 4B 出厂 bootloader 可能未开启 USB 启动支持
✓ 正确:先用 rpi-eeprom-update -a 更新固件,再通过 raspi-config 设置 Boot Order 为 USB 优先

03 首次启动与初始配置

SSD 启动成功后,Kali Linux 会进入登录界面。默认凭据为 kali / kali。首次登录后立即执行以下配置:

Bash
# 更新系统软件包(首次更新可能需要 10-20 分钟)
sudo apt update
sudo apt full-upgrade -y
# 修改默认密码
passwd
# 设置时区为上海
sudo timedatectl set-timezone Asia/Shanghai

执行 apt update 后你会看到类似输出:

输出示例
Get:1 http://kali.download/kali kali-rolling InRelease [41.5 kB]
Get:2 http://kali.download/kali kali-rolling/main arm64 Packages [19.8 MB]
Fetched 20.1 MB in 3s (6,700 kB/s)
Reading package lists... Done
Building dependency tree... Done
All packages are up to date.

如果看到 All packages are up to date. 说明软件源连接正常。如果出现 Temporary failure resolving 错误,检查网络连接和 DNS 配置。

💡 小贴士
Kali 是滚动更新发行版,不需要重装系统升级版本。只需定期执行 apt update && apt full-upgrade 即可保持最新。建议每周更新一次,避免积攒大量待更新包导致依赖冲突。

04 SSH远程管理配置

每次操作都给树莓派接显示器键盘不现实。SSH 是远程管理 Linux 服务器的标准方式——你在 Mac 终端输入命令,树莓派执行后返回结果,就像坐在树莓派面前操作一样。Kali Linux 默认已安装 SSH 服务,只需启用即可。

在树莓派上启用SSH

Bash(树莓派终端)
# 启用 SSH 服务并设置开机自启
sudo systemctl enable ssh
sudo systemctl start ssh
# 查看树莓派 IP 地址
ip addr show eth0

ip addr show eth0 输出中找到 inet 192.168.x.x/24 这一行,记下这个 IP 地址。

从Mac远程连接

Bash(Mac终端)
# 在 Mac 上生成 SSH 密钥(已有可跳过)
ssh-keygen -t ed25519 -C "kali-pi"
# 复制公钥到树莓派(替换为实际 IP)
ssh-copy-id kali@192.168.1.100
# 免密登录
ssh kali@192.168.1.100

首次连接会提示 Are you sure you want to continue connecting?,输入 yes 确认。配置密钥认证后,后续登录无需输入密码。建议在 Mac 的 ~/.ssh/config 中添加快捷配置:

~/.ssh/config
Host kali-pi
    HostName 192.168.1.100
    User kali
    IdentityFile ~/.ssh/id_ed25519

之后只需输入 ssh kali-pi 即可连接,无需记忆 IP 地址。

⚠️ 常见错误
ssh: connect to host port 22: Connection refused — SSH 服务未启动或防火墙拦截
✓ 排查步骤:在树莓派上执行 sudo systemctl status ssh 确认服务状态为 active (running)。若服务正常但仍无法连接,检查 sudo iptables -L 是否有 DROP 规则。

05 Linux文件权限体系

环境搭建完成后,进入本篇核心内容。Linux 的安全模型建立在文件权限之上——每个文件都有明确的所有者、所属组和访问权限。理解权限体系是后续学习提权漏洞(SUID 提权、cron 任务利用)的基础。

rwx 权限三元素

每个文件有三组权限,分别对应三类用户:

• u(user)— 文件所有者的权限
• g(group)— 文件所属组的权限
• o(other)— 其他所有用户的权限

每组权限由三个字符组成:r(read,读)、w(write,写)、x(execute,执行)。对于文件和目录,含义略有不同:

权限 对文件 对目录
r (4) 读取文件内容(cat、less) 列出目录内容(ls)
w (2) 修改文件内容(echo、vim) 创建/删除目录内文件
x (1) 执行文件(./script.sh) 进入目录(cd)

查看文件权限

Bash
ls -l /etc/passwd
# 输出: -rw-r--r-- 1 root root 2803 Aug 7 10:30 /etc/passwd

输出第一个字段 -rw-r--r-- 拆解如下:

-(文件类型)
→
rw-(所有者)
→
r--(所属组)
→
r--(其他人)

第一个字符表示文件类型:- 是普通文件,d 是目录,l 是符号链接。后续 9 个字符三组一组,分别对应 u/g/o 的 rwx 权限。

修改权限:chmod

chmod 支持两种写法:数字表示法和符号表示法。数字法将 r=4、w=2、x=1 相加,三位数字分别对应 u/g/o:

Bash
# 数字表示法(r=4 w=2 x=1)
chmod 755 script.sh  # rwxr-xr-x(所有者可执行)
chmod 644 config.conf # rw-r--r--(仅所有者可写)
chmod 600 id_rsa      # rw-------(仅所有者可读写)
# 符号表示法
chmod u+x script.sh     # 给所有者添加执行权限
chmod g-w file.txt      # 移除组的写权限
chmod o=r config.conf   # 设置其他人只读
特性 数字表示法 符号表示法
语法 chmod 755 file chmod u+x file
优势 一次设置全部三组权限 只修改特定位,不影响其他权限
适用场景 新建文件初始权限设置 微调现有文件权限

修改所有者:chown

Bash
# 修改文件所有者和所属组
sudo chown kali:kali /opt/tools
# 递归修改目录及子文件权限
chmod -R 755 /var/www/html/
# 递归修改所有者
sudo chown -R kali:kali /home/kali/scripts/
💡 小贴士
SSH 私钥文件 ~/.ssh/id_rsa 权限必须是 600,否则 SSH 会拒绝使用。这是 Linux 权限体系保护安全的典型场景:如果其他用户能读取你的私钥,加密通信就形同虚设。
📖 知识回顾
Kali 2026.2 ARM镜像 SSD启动配置 SSH密钥认证 rwx权限三元素 chmod数字/符号表示法 chown修改所有者 递归权限修改-R
✏️ 动手练习
🟢 基础验证
在树莓派上创建一个 Shell 脚本文件 sysinfo.sh,设置权限为 755,然后执行它。要求:脚本输出当前日期、系统内核版本、磁盘使用率。
参考解法:touch sysinfo.sh && chmod 755 sysinfo.sh && ./sysinfo.sh。脚本内容可用 date、uname -r、df -h。
🟡 组合应用
在 /home/kali/ 下创建目录 shared,要求:所有者 kali 有全部权限,组 kali 可读可执行不可写,其他人无任何权限。然后在目录中创建一个文件,验证其他用户(可用 sudo -u nobody cat /home/kali/shared/test.txt)确实无法访问。
提示:需要组合使用 mkdir、chmod 750、touch,注意目录的 x 权限是进入目录的前提。
🔴 开放挑战
在树莓派上创建一个共享工作目录 /opt/teamwork,需求:kali 用户和新建的 guest 用户都能在该目录中创建文件,但只能删除自己创建的文件,不能删除别人的。提示:研究 chmod 的特殊权限位 +t(Sticky Bit)的作用,这将在下一篇详细讲解。
下篇预告
02 SUID/SGID特殊权限与ACL
将深入讲解 SUID/SGID/Sticky Bit 三种特殊权限位的工作原理——这正是 Linux 提权漏洞的核心机制。同时介绍 ACL(访问控制列表)实现更精细的权限控制,以及 find 命令搜索 SUID 文件的安全审计方法。
掌握本篇内容后,回复继续制作下一篇