返回文章列表

Linux 系統管理核心技術實務

本文探討 Linux 系統管理的各個導向,從系統安裝、組態到使用者帳戶管理、網路設定、安全管理以及效能監控等,提供實務操作與最佳實踐,涵蓋 CLI 命令、網路組態、使用者許可權設定、SELinux 與防火牆管理等關鍵技術,並輔以程式碼範例說明,適合系統管理員與 Linux 愛好者參考。

系統管理 Linux

Linux 系統管理涵蓋安裝、組態、維護及安全等導向,本篇從系統安裝流程、命令列操作、使用者帳戶管理到網路與安全設定,提供實務。文章將詳細說明 Linux 系統安裝步驟、常用 CLI 命令、使用者新增與許可權管理,以及網路介面設定、防火牆與 SELinux 的操作,並搭配程式碼範例,讓讀者能快速掌握 Linux 系統管理的關鍵技術。此外,文章也涵蓋了系統更新、軟體管理、儲存管理、系統監控、自動化與指令碼編寫等進階主題,適合不同程度的系統管理員與 Linux 愛好者學習參考。

Linux 系統管理實務:安裝、組態與管理

身為 Linux 系統管理員,掌握系統的安裝、組態與管理是基本功。本篇文章將探討 Linux 系統管理的各個導向,從使用者帳戶管理、備份與檔案系統維護,到網路設定、硬體與軟體疑難排解等,提供實用的操作與最佳實踐。

安裝 Linux 與初始設定

在安裝 Linux 之前,準備工作至關重要。首先,需確認硬體相容性,並選擇適合的發行版本。接著,下載並建立可開機的 USB 或 DVD 安裝媒介。

準備系統

  1. 檢查硬體相容性:確認 CPU、記憶體和儲存裝置是否符合最低系統需求。
  2. 選擇 Linux 發行版:根據需求選擇合適的發行版,如 Ubuntu、Fedora 或 CentOS。
  3. 下載並建立安裝媒介:下載 ISO 映像檔,並使用工具(如 Rufus 或 Etcher)建立可開機的 USB 驅動器。

安裝流程

  1. 啟動安裝程式:從建立好的 USB 驅動器或 DVD 開機,進入安裝介面。
  2. 分割磁碟:根據需求手動或自動分割硬碟。
  3. 設定網路:組態網路連線,包括靜態或動態 IP 設定。
  4. 安裝基本套件:選擇要安裝的軟體套件,如桌面環境或伺服器軟體。

使用命令列介面(CLI)導航檔案系統

Linux 的命令列介面是系統管理的強大工具。以下是一些基礎且常用的命令:

  • pwd:顯示目前工作目錄的路徑。
  • cd:切換到指定目錄。
  • ls:列出目錄中的檔案和子目錄。
# 顯示目前工作目錄
pwd

# 切換到 /home/user 目錄
cd /home/user

# 列出目前目錄下的檔案和子目錄
ls -l

內容解密:

  1. pwd 命令用於顯示目前的工作目錄,幫助使用者瞭解目前所在的檔案系統位置。
  2. cd 命令用於切換目錄,搭配不同的路徑引數可靈活導航檔案系統。
  3. ls -l 命令以詳細列表形式顯示檔案和目錄的資訊,包括許可權、所有者和大小等。

使用者帳戶管理

使用者帳戶管理是 Linux 系統管理的重要部分。系統管理員需負責新增、修改和刪除使用者帳戶,並設定適當的許可權。

新增使用者

  1. 使用 useradd 命令:建立新使用者帳戶。
  2. 設定密碼:為新使用者設定初始密碼。
# 新增名為 testuser 的使用者
sudo useradd testuser

# 為 testuser 設定密碼
sudo passwd testuser

內容解密:

  1. useradd 命令用於建立新的使用者帳戶,系統會根據組態自動分配 UID 和 GID。
  2. passwd 命令用於設定或變更使用者的密碼,確保帳戶的安全性。

網路設定與安全管理

Linux 系統的網路設定涉及 IP 位址組態、網路介面管理和防火牆設定等。

靜態 IP 設定

  1. 編輯網路組態檔案:修改網路介面的組態檔案,設定靜態 IP 位址。
  2. 重啟網路服務:使組態生效。
# 編輯網路組態檔案(以 Ubuntu 為例)
sudo nano /etc/netplan/01-netcfg.yaml

# 設定靜態 IP
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.10/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

# 應用組態
sudo netplan apply

內容解密:

  1. 靜態 IP 組態確保伺服器或特定裝置擁有固定的網路位址,便於管理和存取。
  2. netplan apply 命令用於應用網路組態變更,使新的靜態 IP 位址生效。

SELinux 與防火牆管理

SELinux(Security-Enhanced Linux)提供強制存取控制(MAC),增強系統安全性。防火牆則用於控制進出網路流量。

SELinux 管理

  1. 檢查 SELinux 狀態:確認 SELinux 是否啟用及目前模式。
  2. 調整 SELinux 策略:根據需求調整 SELinux 的執行模式或策略。
# 檢查 SELinux 狀態
sestatus

# 切換到寬容模式(Permissive Mode)
sudo setenforce 0

內容解密:

  1. sestatus 命令顯示 SELinux 的目前狀態,包括是否啟用及執行模式。
  2. setenforce 0 命令將 SELinux 切換到寬容模式,此時僅記錄違規而不強制執行安全策略。

Linux系統管理深度解析:從基礎到進階

前言

Linux系統管理是一門複雜且多導向的技術領域,涵蓋了系統安裝、組態、維護、安全等諸多方面。本文將探討Linux系統管理的各個關鍵環節,並提供實務經驗與專業見解。

系統更新與軟體管理

在Linux系統管理中,系統更新和軟體管理是至關重要的任務。不同的發行版(如Red Hat Enterprise Linux和Debian)有不同的更新和管理方式。

Red Hat Enterprise Linux系統更新

Red Hat Enterprise Linux(RHEL)使用yumdnf來進行系統更新。以下是一個典型的更新過程:

# 更新系統
sudo dnf update -y

Debian系統更新

Debian及其衍生版本(如Ubuntu)則使用apt來進行系統更新。示例如下:

# 更新套件列表並升級系統
sudo apt update && sudo apt full-upgrade -y

軟體安裝與移除

無論是哪種發行版,安裝和移除軟體都是常見的操作。以dnfapt為例:

# 使用dnf安裝軟體
sudo dnf install <package_name>

# 使用apt安裝軟體
sudo apt install <package_name>

# 移除軟體(以dnf為例)
sudo dnf remove <package_name>

內容解密:

  1. 套件管理工具dnfapt是兩種不同的套件管理工具,分別用於RHEL和Debian系的Linux發行版。它們負責處理軟體的安裝、更新和移除。
  2. 更新流程:更新系統時,首先會檢查可用的更新,接著下載並安裝這些更新。過程中會檢查相依性並解決可能的衝突。
  3. 安全性考量:保持系統更新是確保系統安全的重要措施,因為更新通常包含安全修補程式。

儲存管理

儲存管理是Linux系統管理的另一個重要方面,涉及磁碟管理、檔案系統掛載、邏輯卷管理等。

新增磁碟與初始化

當新增磁碟到系統時,需要進行初始化和設定。以下是一個基本的流程:

  1. 安裝磁碟:將新磁碟物理安裝到伺服器上。
  2. 準備磁碟:使用工具如fdiskparted對磁碟進行分割。
  3. 建立檔案系統:在新的分割區上建立檔案系統,如使用mkfs.ext4
  4. 掛載檔案系統:將新的檔案系統掛載到適當的掛載點。
# 使用fdisk建立分割區
sudo fdisk /dev/sdb

# 建立ext4檔案系統
sudo mkfs.ext4 /dev/sdb1

# 掛載新的檔案系統
sudo mount /dev/sdb1 /mnt/newdisk

邏輯卷管理(LVM)

LVM提供了一種靈活的磁碟管理方式,允許動態調整卷的大小。

# 建立物理卷
sudo pvcreate /dev/sdb1

# 建立卷組
sudo vgcreate vg_data /dev/sdb1

# 建立邏輯卷
sudo lvcreate -L 100G -n lv_data vg_data

# 建立檔案系統並掛載
sudo mkfs.ext4 /dev/vg_data/lv_data
sudo mount /dev/vg_data/lv_data /mnt/data

內容解密:

  1. 磁碟分割:使用fdiskparted對新磁碟進行分割,是使用新磁碟的第一步。
  2. LVM的優勢:LVM允許動態擴充套件和縮減邏輯卷的大小,提高了儲存管理的靈活性。
  3. 檔案系統建立:在新的分割區或邏輯捲上建立檔案系統,使其可以被作業系統使用。

系統安全與監控

確保Linux系統的安全和穩定執行需要進行定期的監控和安全檢查。

安全措施

  1. 保護Root帳戶:限制Root帳戶的使用,使用sudo進行管理操作。
  2. 最小化攻擊面:關閉不必要的服務和埠,減少潛在的安全風險。
  3. 定期更新和修補:保持系統和軟體的最新狀態,及時應用安全修補程式。

系統監控

使用工具如sysstatiostatpidstat等來監控系統的CPU、記憶體、磁碟I/O等資源的使用情況。

# 使用iostat監控磁碟I/O
iostat -x 1

# 使用pidstat監控行程資源使用
pidstat -u -r -d 1

內容解密:

  1. 安全最佳實踐:保護Root帳戶和最小化攻擊面是基本的安全措施,可以有效減少被攻擊的風險。
  2. 監控工具:使用各種監控工具可以即時瞭解系統的執行狀態,及時發現和解決問題。

自動化與指令碼編寫

自動化是提高Linux系統管理效率的重要手段。透過編寫指令碼和使用計劃任務,可以自動執行重複性的管理工作。

編寫指令碼

使用Bash等指令碼語言編寫自動化指令碼,例如:

#!/bin/bash

# 自動備份資料函式庫
mysqldump -u username -p'password' database > backup.sql

# 自動清理舊日誌
find /var/log/ -type f -name '*.log' -mtime +7 -exec rm {} \;

計劃任務(Cron)

使用Cron來排程自動化任務,例如每天凌晨2點執行備份指令碼:

0 2 * * * /path/to/backup_script.sh

內容解密:

  1. 指令碼自動化:透過編寫指令碼,可以自動執行複雜或重複的任務,提高工作效率。
  2. Cron排程:Cron是一個強大的任務排程工具,可以按預定的時間執行指令碼或命令。

前言

身為一名技術寫作者,我天生具有教學的熱情。我的許多最早的記憶都是關於教導其他孩子如何做某件事情——下棋、繪畫或為動作人物搭建堡壘。在高中和大學時期,我也曾教導其他學生。教學對我來說是一種自然而然的事情。當我撰寫文章、白皮書或書籍時,我會扮演老師的角色,將讀者置於教室中,並教導他們執行任務或理解概念,例如更改檔案許可權或將新使用者新增到系統中。這就是我的思維方式。本文與我撰寫的大部分內容一樣,是出於這種幾乎與生俱來的教學慾望,希望傳授知識並激發好奇心,讓其成長、茁壯並傳播給他人。我希望您能在本文中找到啟發,促使您做同樣的事情。

本文讀者

本文適合任何想要首次探索Linux作為系統管理員的人,或是想要轉換到此角色的人,無論是為了工作還是作為嚴肅的愛好。本文也適合那些準備參加需要一些Linux知識的認證考試的人。

為何撰寫本文

我撰寫本文是為了填補系統管理員現有的知識空白。如果我在職業生涯早期擁有這本文,我一定會將它放在我的桌子上作為參考。當然,本文中有大量的技術資訊,但同時也包含了職業指導和一些關於成為系統管理員的非技術方面的內容。

本文導覽

本文的組織結構如下:

  • 第一章介紹了透過安裝和初始設定來認識Linux。
  • 第二章探索了命令列介面,這對於作為系統管理員使用Linux至關重要。
  • 第三章展示瞭如何自定義使用者經驗,並介紹了全域系統組態檔案。
  • 第四章重點介紹了使用者管理。
  • 第五章概述了Linux網路。
  • 第六章是軟體管理的。
  • 第七章涉及儲存概念。
  • 第八章討論了維護系統健康。
  • 第九章提供了一些監控系統的工具。
  • 第十章探索了指令碼編寫和自動化。
  • 第十一章涵蓋了使用Samba套件實作Windows互操作性。
  • 第十二章教授了一些實用的故障排除技術。
  • 第十三章幫助您保護系統安全。
  • 第十四章總結了您應該探索的教育機會,以保持更新和提高技能。
  • 第十五章提供了幫助您推動職業生涯發展的建議。

本文使用的排版慣例

本文使用了以下排版慣例:

  • 斜體 表示新術語、網址、電子郵件地址、檔案名稱和檔案副檔名。
  • 等寬字型 用於程式清單,以及在段落中參照程式元素,如變數或函式名稱、資料函式庫、資料型別、環境變數、陳述式和關鍵字。
  • 等寬斜體 表示應該被使用者提供的數值或由上下文決定的數值替換的文字。

提示與注意事項

本元素表示提示或建議。

本元素表示一般性註解。

本元素表示警告或注意事項。

致謝

身為一名Linux系統管理員,需要您和您的家人做出犧牲。我經常說,系統管理員的全家都在為公司工作。這可能適用於您所從事的任何工作,但對於系統管理員來說似乎尤其如此。Linux系統管理是一項偉大的職業選擇,但請為自己、您的配偶和您的孩子留出時間。請記住,您不是為了工作而活;您是為了生活而工作。您無法找回錯過的時刻——那些創造出將被美好回憶的人生里程碑、事件和慶祝活動。

感謝我的妻子Melissa,她一直支援我的創作追求。
我還要感謝以下幫助使本文成形的朋友們:

  • 技術審閱者 Daniel Barrett 和 Adam McPartlan

Plantuml 圖表在此處插入(若有需要)

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title Linux 系統管理核心技術實務

package "安全架構" {
    package "網路安全" {
        component [防火牆] as firewall
        component [WAF] as waf
        component [DDoS 防護] as ddos
    }

    package "身份認證" {
        component [OAuth 2.0] as oauth
        component [JWT Token] as jwt
        component [MFA] as mfa
    }

    package "資料安全" {
        component [加密傳輸 TLS] as tls
        component [資料加密] as encrypt
        component [金鑰管理] as kms
    }

    package "監控審計" {
        component [日誌收集] as log
        component [威脅偵測] as threat
        component [合規審計] as audit
    }
}

firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成

@enduml

此圖示展示了閱讀本文的基本流程,從開始到實踐所學知識的步驟。