前言
前一天學習了 Current Working Directory(目前工作目錄)以及 cd 指令的基本使用方式。
今天繼續透過 pwn.college 的 Challenge 練習在 Linux 檔案系統中移動,並進一步熟悉目錄導航(Directory Navigation)的概念。
這次的挑戰不再只是切換到單一目錄,而是需要連續前往多個不同的位置,並從正確的目錄執行程式。透過這個過程,我開始對 Linux 的檔案系統結構有更具體的認識。
在 Linux 中,所有檔案與資料夾都位於檔案系統之中。
當我們需要存取不同位置的檔案或執行特定程式時,就必須在不同目錄之間移動。
這個過程稱為 Directory Navigation(目錄導航)
最常使用的指令就是 cd 例如 cd /tmp 代表切換到/tmp 目錄。
透過 cd,我們可以在 Linux 的檔案系統中自由移動。
切換目錄後,可以使用 pwd 查看目前的工作目錄。pwd 是 Print Working Directory
例如pwd如果顯示/usr/share/doc就表示目前所在的位置是/usr/share/doc
在進行 Challenge 時,確認自己所在的位置是一個很重要的習慣。
這次的 Challenge 需要連續完成五個階段。
一開始直接執行/challenge/run
系統提示Incorrect... You are not currently in the /home directory. Please use the cd utility to change directory appropriately.
代表說我們不在 /home 這個目錄裡面
因此先切換到 cd /home 再執行 /challenge/run
會看到成功完成第一個階段。
接下來 Challenge 要求依序切換到不同目錄 /usr/share/doc,並再重複執行 /challenge/run
會看到成功完成第二個階段。
接下來 Challenge 要求依序切換到不同目錄 /,並再重複執行 /challenge/run
會看到成功完成第三個階段。
接下來 Challenge 要求依序切換到不同目錄 /sys/kernel,並再重複執行 /challenge/run
會看到成功完成第四個階段。
接下來 Challenge 要求依序切換到不同目錄 /var/lib/apt/lists,並再重複執行 /challenge/run
會看到成功完成第五個階段並得到最後的flag。
這次 Challenge 出現了許多不同的系統目錄。
| 目錄 | 用途 |
|---|---|
/home |
使用者家目錄 |
/usr/share/doc |
系統文件與說明檔 |
/ |
Linux 根目錄(Root Directory) |
/sys/kernel |
Linux Kernel 相關資訊 |
/var/lib/apt/lists |
套件管理系統儲存的資料 |
雖然目前只是切換到這些目錄,但也讓我開始接觸 Linux 檔案系統的整體架構。
今天最大的收穫不是學會新的指令,而是開始熟悉 Linux 的目錄結構。
在完成 Challenge 的過程中,需要多次切換到不同的位置,讓我發現 Linux 的檔案系統其實有很明確的階層規劃。
例如 /home 與使用者有關,而 /sys/kernel 則與系統核心相關,不同目錄都有自己的用途。
雖然目前還只是透過 cd 在不同目錄之間移動,但這個過程也讓我逐漸對 Linux 的檔案系統有更具體的認識。
我認為這些基礎知識對未來學習 Linux 系統管理、Reverse Engineering 與 Pwn 都會有幫助。