Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Bash 是什麼?從 Shell 到 Shellshock 漏洞的完整解析

編輯:Linux 教學

Bash 簡介

Bash(Bourne-Again SHell) 是 GNU 計畫開發的 Unix Shell,名稱雙關自 Stephen Bourne 於 1978 年開發的 Bourne Shell (sh)。Brian Fox 於 1987 年創建,1990 年起由 Chet Ramey 維護至今。Bash 是絕大多數 Linux 發行版與 macOS(v10.4 以前)的預設 Shell,亦移植至 Windows(Cygwin、WSL)、MS-DOS(DJGPP)等平台,提供 POSIX 相容的命令列環境。

核心特性

  • 指令列編輯:支援 Emacs/vi 模式、歷史指令搜尋(Ctrl+R)、Tab 自動補全。
  • 腳本語言:變數、陣列、函數、流程控制、算術運算、正則比對([[ =~ ]])。
  • 作業控制:前景/背景任務(&、jobs、fg/bg)、信號處理(trap)。
  • 可程式化補全:complete、compgen 打造豐富的 CLI 體驗。

Bash 與 Shellshock 漏洞 (CVE-2014-6271)

漏洞成因

2014 年 9 月揭露的 Shellshock,源於 Bash 在解析環境變數中的函數定義時,會繼續執行函數定義後的任意程式碼。攻擊者可透過 CGI、SSH、DHCP、OpenVPN 等服務注入惡意環境變數,達成遠端程式碼執行(RCE)。

檢測方式

env x='() { :;}; echo vulnerable' bash -c "echo test"

若輸出包含 vulnerable,表示受影響,需立即更新。

修補建議

  • Red Hat/CentOS/Fedora:sudo yum update -y bash
  • Debian/Ubuntu:sudo apt update && sudo apt install --only-upgrade bash
  • 無法立即更新時,可考慮使用 mod_security 規則或 WAF 暫時阻擋惡意 User-Agent/Referer 模式。

常見誤解:Bash 英文字面意思

單字 bash 本意為「猛擊、嚴厲批評」,但此處純屬巧合,Bash = Bourne-Again SHell。

進階用法小撇步

  • set -o vi:啟用 vi 編輯模式
  • shopt -s globstar:支援 ** 遞迴匹配
  • PROMPT_COMMAND:自訂動態提示字元
  • declare -A:關聯陣列(Bash 4+)

Bash 不只是命令列介面,更是自動化運維、CI/CD 腳本、容器入口點的核心引擎。深入掌握其特性與安全歷史,能讓你在 Linux 世界走得更遠、更穩。

Copyright © Windows教程網 All Rights Reserved