Linux 系統管理中,硬碟分割槽、裝置管理和日誌系統至關重要。熟練掌握這些技術,才能有效組態系統資源、提升系統效能,並確保系統安全穩定執行。本文從硬碟分割槽標籤系統開始,逐步介紹 fdisk、lsblk 等指令的運用,並比較不同檔案系統的特性,例如 ext4、NTFS 和 FAT 等。接著,文章探討 Linux 裝置的命名與管理方式,以及如何使用 fsck 檢查和修復磁碟錯誤,並利用 dd 命令製作裝置的物理副本。最後,文章著重介紹 Linux 的日誌系統,特別是 rsyslog 日誌守護程式,說明其組態檔案 rsyslog.conf 的結構和規則設定,讓讀者瞭解如何檢視、組態和管理系統日誌,以提升系統安全性及故障排除能力。
在 Linux 系統中,硬碟分割槽策略會直接影響系統效能和資料安全性。透過 fdisk 和 lsblk 等工具,可以有效管理硬碟分割槽,並清楚掌握系統的儲存裝置架構。選擇合適的檔案系統型別,例如 ext4 或其他新興的檔案系統,對於不同應用場景的效能最佳化至關重要。此外,理解 Linux 裝置的命名規則和管理方式,以及如何使用 fsck 檢查和修復磁碟錯誤,對於維護系統穩定性非常重要。dd 命令則提供製作裝置物理副本的功能,可用於資料備份和還原。日誌系統對於系統安全和故障排除至關重要,rsyslog 作為 Linux 系統的日誌守護程式,透過其組態檔案 /etc/rsyslog.conf 可以設定日誌記錄規則,並將不同型別的日誌訊息儲存到指定的檔案中,方便系統管理員進行監控和分析。
Linux 硬碟分割槽及裝置管理
在 Linux 系統中,硬碟分割槽是管理和分割資訊的重要技術。透過分割槽,我們可以將硬碟分成多個獨立的區域,例如交換檔、家目錄和根目錄,每個區域可以獨立管理許可權和資源。這不僅有助於資源分享,還能釋放預設許可權的限制。
分割槽標籤系統
Linux 為每個分割槽分配一個次要號碼,這個號碼會跟在驅動器代號後面。例如,第一個 SATA 驅動器的第一個分割槽會被標記為 sda1,第二個分割槽為 sda2,以此類別推。以下是這種標籤系統的示範:
Partition Description
sda1 第一個分割槽(1)在第一個(a)SATA 驅動器上
sda2 第二個分割槽(2)在第一個(a)SATA 驅動器上
sda3 第三個分割槽(3)在第一個(a)SATA 驅動器上
檢視硬碟分割槽
要檢視 Linux 系統中的所有分割槽及其容量,可以使用 fdisk 工具。透過 -l 選項,我們可以列出所有驅動器的所有分割槽:
kali > fdisk -l
使用 lsblk 檢視磁碟裝置
除了 fdisk 外,Linux 還提供另一個命令 lsblk(list block),這個命令會列出 /dev 目錄中的所有磁碟裝置基本資訊,並且以樹狀結構顯示每個裝置及其分割槽。這與 fdisk -l 的輸出類別似,但不需要 root 許可權即可執行。
kali > lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 18.7G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 1.3G 0 part [SWAP]
sdb 8:16 1 29.8G 0 disk
裡面的內容解密:
NAME:裝置名稱。MAJ:MIN:主次號碼。RM:移除裝置標誌(1 是可移除裝置)。SIZE:裝置大小。RO:唯讀標誌(0 是可讀寫)。TYPE:裝置型別(例如:disk、part)。MOUNTPOINT:掛載點。
從這裡可以看到,sda 是一個大小為20GB的硬碟,包含三個分割槽:sda1、sda2 和 sda5。其中 sda5 是一個交換分割槽(類別似於 Windows 的頁面檔)。
檔案系統型別
Linux 支援多種檔案系統型別,但最常見的是 ext2、ext3 和 ext4。這些都是擴充套件檔案系統(extended filesystem)的不同版本,其中 ext4 是最新且最穩定的版本。
此外,Linux 必須能夠識別和使用來自其他作業系統(如 Windows 和 macOS)的檔案系統型別。例如 HPFS、NTFS 和 exFAT 則是這些作業系統常用的檔案系統。
單字元和快取裝置
Linux 中 /dev 資料夾中的裝置檔名稱有兩種形式:字元裝置和快取裝置。
- 字元裝置:這些裝置以字元為單位進行資料傳輸,通常是外部裝置如滑鼠或鍵盤。
- 快取裝置:這些裝置以快取(多位元組)為單位進行資料傳輸,包括硬碟和 DVD 驅動器。
在 /dev 資料夾中,字元裝置和快取裝置可以透過前置字元 c 和 b 做區別:
crw-r--r-- root root ... agpgart
brw-r--r-- root root ... sda
分析與應用
瞭解如何管理 Linux 的硬碟分割槽及檔案系統型別對於系統管理員來說至關重要。透過適當的分割槽設定和檔案系統選擇,我們可以提升系統效能、增強安全性並更有效地管理資源。
此外,認識不同作業系統間的檔案系統差異也有助於更好地處理跨平台資料分享問題。例如,如果你知道一個外部硬碟使用的是 NTFS 或 exFAT 檔案系統,那麼你就可以更準確地預測它可能來自 Windows 或 macOS 作業系統。
小段落標題
與 Windows 檔案系統比較
Linux 的擴充套件檔案系統(ext2、ext3、ext4)具有許多優點,包括高效的資源管理和強大的資料完整性保護機制。而 Windows 的 NTFS 和 FAT 檔案系統則各有特色:
- NTFS:提供更強的安全性和功能支援,但對於較舊的裝置可能不完全相容。
- FAT:雖然簡單且易於使用,但在資料完整性和安全性方面不如 NTFS 或 ext4。
未來趨勢
隨著技術的進步和需求的變化,未來可能會有更多新的檔案系統出現。例如 ZFS 和 Btrfs 是兩種相對較新且功能強大的檔案系統,它們提供了更高層次的資料保護和管理能力。
小段落標題
Linux 檔案系統選擇
選擇合適的 Linux 檔案系統需要考慮多種因素:
- 效能需求:如果需要高效能儲存解決方案,ext4 是理想選擇。
- 資料完整性:如果重視資料完整性和安全性,ZFS 或 Btrfs 是不錯選擇。
- 相容性:如果需要跨平台分享資料,NTFS 或 exFAT 檔案系統也值得考慮。
分析與應用評估
實務上採用不同檔案系統會帶來不同效果。例如在大資料處理或高頻率讀寫操作中,選擇合適的檔案系統能顯著提升效率;而在資料中心或雲端環境中則需考慮資料完整性和防災能力。因此瞭解各檔案系統特點及其應用場景至關重要。
個人見解
玄貓認為在實務中選擇合適的檔案系統應根據具體需求來定。對於一般桌面使用者而言 ext4 已經足夠滿足需求;而對於企業級應用或高需求環境下則需要考慮 ZFS 或 Btrfs 的優勢。玄貓也建議定期評估技術趨勢以保持技術更新和不斷提升系統穩定性與安全性。
小段落標題
Linux 分割槽管理工具
除了使用 fdisk 和 lsblk 外還有其他工具可以幫助我們管理 Linux 分割槽:
- GParted:圖形介面工具適用於圖形介面作業系統管理員使用。
- parted:命令列工具支援更多進階功能。
總之玄貓認為深入理解與靈活運用這些工具將有助於提升 Linux 基礎架構管理水平並確保資料安全性與可靠性。
磁碟管理與監控
磁碟管理與監控是任何系統管理員或駭客必須掌握的基本技能。透過瞭解如何檢視磁碟資訊、掛載與解除安裝磁碟以及檢查磁碟錯誤,我們可以更好地管理與維護系統。以下是詳細的操作。
檢視磁碟資訊
要檢視系統中的磁碟資訊,我們可以使用 lsblk 命令。這個命令會列出所有的區塊裝置及其相關資訊。
lsblk
此命令的輸出範例如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 1G 0 part /
└─sda2 8:2 0 127G 0 part /home
sdb 8:16 1 29.8G 0 disk /media/USB3.0
sr0 11:0 1 2.7G 0 rom
從這個輸出中,我們可以看到硬碟 sda 和 USB 快閃碟 sdb 的資訊,包括它們的掛載點。硬碟 sda 的第一個分割槽 sda1 被掛載到根目錄 /,而 USB 快閃碟 sdb 被掛載到 /media/USB3.0。
掛載與解除安裝磁碟
自動掛載
現代作業系統通常會自動掛載新連線的儲存裝置,例如 USB 快閃碟或硬碟。這樣做可以讓使用者無需手動操作即可存取裝置中的資料。
掛載裝置
有時候,我們需要手動掛載裝置。這通常發生在某些 Linux 發行版中,或者當我們需要將裝置掛載到特定位置時。以下是如何手動掛載裝置的步驟:
# 掛載硬碟 sdb1 到 /mnt
mount /dev/sdb1 /mnt
# 掛載 USB 快閃碟 sdc1 到 /media
mount /dev/sdc1 /media
掛載點
掛載點是指在檔案系統樹中,裝置被附加的位置。通常,內部硬碟會被掛載到 /mnt,而外部 USB 裝置則被掛載到 /media。當然,你也可以選擇任何其他目錄作為掛載點。
檔案系統表 (fstab)
已經掛載的檔案系統會被記錄在 /etc/fstab 檔案中。這個檔案會在每次開機時被系統讀取,以便自動掛載指定的裝置。
######解除安裝裝置
在 Windows 或 Mac 作業系統中,「彈出」或「拔除」一個 USB 裝置是一個常見的操作,以確保不會損壞裝置中的檔案。在 Linux 中,這個操作稱為「解除安裝」。解除安裝一個裝置之前,必須確保該裝置沒有正在被使用。
# 命令格式: umount [裝置名稱]
umount /dev/sdb1
如果裝置正在被使用(例如正在讀取或寫入),解除安裝命令會失敗並顯示錯誤訊息。
檢查與修復檔案系統
檢視磁碟空間
要檢視已掛載磁碟的空間使用情況,我們可以使用 df 命令。這個命令會顯示所有已掛載磁碟的空間使用情況。
df
此命令的輸出範例如下:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 19620732 17096196 1504788 92% /
udev 10240 0 10240 0% /dev
/dev/sdb1 29823024 29712544 110480 99% /media/USB3.0
從這個輸出中,我們可以看到根檔案系統 (rootfs) 和 USB 快閃碟 (/dev/sdb1) 的空間使用情況。根檔案系統已經使用了約92%的空間,而 USB 快閃碟幾乎已滿。
檢查與修復錯誤
要檢查和修復檔案系統錯誤,我們可以使用 fsck 命令。這個命令會檢查指定的檔案系統並修復發現的錯誤。在執行 fsck 命令之前,必須先解除安裝該檔案系統。
# 首先解除安裝裝置
umount /dev/sdb1
# 接著執行 fsck 命令來檢查並修復錯誤
fsck -p /dev/sdb1
如果檔案系統沒有發現任何錯誤,fsck 命令會顯示類別似以下的訊息:
File system checking finished. No errors found.
理解 Linux 裝置管理與日誌系統
在 Linux 系統中,瞭解裝置的命名與管理方式對於任何使用者和駭客都是至關重要的。駭客需要了解系統上掛載了哪些裝置,以及可用的儲存空間。儲存裝置經常會出現錯誤,我們可以使用 fsck 命令來檢查和修復這些錯誤。此外,dd 命令能夠製作裝置的物理複製,包括已刪除的檔案。
實作練習
在進入下一章之前,玄貓建議使用者可以透過以下練習來鞏固本章所學的技能:
- 掛載與解除安裝快速快閃記憶體:使用
mount和umount命令來掛載和解除安裝你的快速快閃記憶體。 - 檢查主硬碟空間:檢查你的主硬碟中有多少可用空間。
- 檢查快速快閃記憶體錯誤:使用
fsck命令來檢查你的快速快閃記憶體是否有錯誤。 - 複製快速快閃記憶體內容:使用
dd命令將一個快速快閃記憶體的全部內容(包括已刪除的檔案)複製到另一個快速快閃記憶體。 - 檢查區塊裝置特性:使用
lsblk命令來確定你的區塊裝置的基本特性。
Linux 日誌系統
對於任何 Linux 使用者來說,瞭解如何使用日誌檔案是非常重要的。日誌檔案記錄了作業系統和應用程式執行時發生的事件,包括任何錯誤和安全警示。系統會根據一系列規則自動記錄資訊,本章節將展示如何組態這些規則。
對於駭客來說,日誌檔案可以成為追蹤目標活動和身份的線索。然而,它同時也可能暴露自己在他人系統上的行動。因此,駭客需要了解可以從日誌中取得哪些資訊,以及如何隱藏自己的活動和方法。
對於安全專家來說,瞭解如何管理日誌功能以確定系統是否受到攻擊,並解密發生了什麼以及誰做了這些事情也是至關重要的。
本章節將展示如何檢查和組態日誌檔案,以及如何移除活動證據甚至完全停用日誌記錄功能。首先,我們來看看負責日誌記錄的守護程式。
rsyslog 日誌守護程式
Linux 使用一個叫做 syslogd 的守護程式自動記錄電腦上的事件。有幾種 syslog 的變體,包括 rsyslog 和 syslog-ng,這些變體在不同的 Linux 發行版中使用。儘管它們運作方式非常相似,但存在一些細微差異。由於 Kali Linux 根據 Debian,而 Debian 預設安裝 rsyslog,因此我們在此章節中專注於這個工具。如果你想使用其他發行版,建議進行一些相關研究。
檢查系統上的 rsyslog
首先,開啟 Kali 的終端並輸入以下命令:
kali > locate rsyslog
你會看到類別似以下的輸出:
/etc/rsyslog.conf
/etc/rsyslog.d
/etc/default/rsyslog
/etc/init.d/rsyslog
/etc/logcheck/ignore.d.server/rsyslog
/etc/logrotate.d/rsyslog
/etc/rc0.d/K04rsyslog
...
這些檔案中包含了與 rsyslog 相關的關鍵字——其中有些比其他檔案更有用。我們需要檢查的是組態檔案 rsyslog.conf。
rsyslog 組態檔案
像大多數 Linux 應用程式一樣,rsyslog 也是透過一個位於 /etc 目錄中的純文字組態檔案進行管理和組態的。在 rsyslog 的情況下,組態檔案位於 /etc/rsyslog.conf。開啟這個檔案並探索其內容(此處我們使用 Leafpad):
kali > leafpad /etc/rsyslog.conf
你應該會看到類別似以下內容:
# /etc/rsyslog.conf Configuration file for rsyslog.
# For more information see
# /usr/share/doc/rsyslog/doc/html/rsyslog_conf.html
#################
#### MODULES ####
#################
module(load="imuxsock") # 提供本地系統記錄支援
module(load="imklog") # 提供核心記錄支援
#module(load="immark") # 提供 MARK 訊息能力
# 提供 UDP syslog 接收功能
#module(load="imudp")
#input(type="imudp" port="514")
# 提供 TCP syslog 接收功能
#module(load="imtcp")
#input(type="imtcp" port="514")
###########################
#### GLOBAL DIRECTIVES ####
###########################
如你所見,rsyslog.conf 檔案包含了大量註解來說明其用途。大部分這些資訊目前對你來說可能不太實用,但如果你瀏覽到第 50 行以下,你會發現 Rules 段落。這裡是你可以設定 Linux 系統自動記錄資訊規則的地方。
rsyslog 日誌規則
rsyslog 的規則決定了哪種資訊會被記錄、哪些程式的訊息會被記錄以及這些記錄將被儲存在哪裡。作為駭客,這允許你找出正在被記錄的是什麼以及這些記錄被寫入到哪裡以便你可以刪除或隱藏它們。滾動到第 50 行左右,你應該會看到類別似以下內容:
###############
#### RULES ####
###############
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none /var/log/syslog
#cron.* /var/log/cron.log
daemon.* /var/log/daemon.log
kern.* /var/log/kern.log
lpr.* /var/log/lpr.log
mail.* /var/log/mail.log
user.* /var/log/user.log
mail.info /var/log/mail.info
mail.warn /var/log/mail.warn
mail.err /var/log/mail.err
每行都是一條單獨的日誌規則,指定哪些訊息被記錄以及它們被記錄到哪裡。這些規則的基本格式如下:
facility.priority action
facility 關鍵字參照的是產生日誌的程式(例如 mail、kernel 或 lpr),而 priority 關鍵字決定為該程式要記錄哪種訊息型別。最後一個關鍵字(右邊)指定的是日誌將被寄送到哪裡。
以下是一些有效的程式碼列表可以替換組態檔案中的 facility 關鍵字:
- auth/authpriv:安全/授權訊息。
- cron:時鐘守護程式。
- daemon:其他守護程式。
玄貓建議進行深度學習每一個優先權等級及其對應之應用範疇與應用層面之教學文章
