Linux 學習 第八、九章 學習系統管理與安裝 Linux

📢 本文由 gemini-3-flash-preview 翻譯

第八章 學習系統管理

8.1 理解系統管理

  • su 命令 — 以 root 使用者身分開啟一個 shell

  • sudo 命令 — 一般使用者透過此命令執行其他命令時,該指令才會被賦予 root 權限

8.2 使用圖形化管理工具

Cockpit 是基於瀏覽器的系統管理工具

  1. 安裝 Cockpit
1
sudo dnf install cockpit
  1. 以 root 身分登入,啟用 Cockpit 通訊端 (Socket)
1
sudo systemctl enable --now cockpit.socket
  1. 在瀏覽器打開介面: localhost:9090

8.2.1 使用 system-config-* 工具

工具命令描述
網域名稱系統 (DNS)system-config-bind如果電腦充當 DNS 伺服器,應建立和設定區域 (Zone)
HTTPsystem-config-httpdApache Web 伺服器
NFSsystem-config-nfs設定與其他使用了 NFS 服務的電腦共用的目錄
Root Passwordsystem-config-rootpassword變更 root 密碼
Samba NFSsystem-config-samba設定 Windows 共用資料夾
Servicessystem-config-services顯示和變更 Fedora 中在不同執行等級 (Runlevel) 的服務
Authenticationauthconfig-gtk變更系統中對使用者進行身分驗證的方式
Date & Timesystem-config-date設定日期和時間或與 NTP 伺服器保持同步
Firewallsystem-config-firewall設定防火牆
Languagesystem-config-language選擇語言
Printingsystem-config-printer設定本機和網路印表機
SELinux Managementpolicycoreutils-gui設定 SELinux 的強制模式與預設原則
Users & Groupssystem-config-users使用者帳號相關

8.3 使用 root 使用者帳號

8.3.1 透過 shell 成為 root 使用者

使用命令 su 即可轉為 root 使用者,但此時環境變數還是原來的帳號

使用 su - 以將環境變數也轉變為 root 使用者的

此外,透過 su - username 可切換到指定使用者

8.3.2 使用 sudo 獲取管理存取權限

使用 sudo 執行的命令擁有 root 權限,而且不需要 root 密碼,只需要賦予相應使用者權限即可

以下為賦予 sudo 權限

  1. 以 root 身分執行 visudo 命令

  2. 添加如下所示行

1
2
3
4
5
yexca    ALL=(ALL)    ALL

# 或下面為使用 sudo 時不需要密碼
# (該使用者的密碼,不是 root 使用者的密碼)
yexca    ALL=(ALL)    NOPASSWD:ALL

這樣將賦予使用者 yexca 以 sudo 權限

  1. 儲存變更後的檔案

8.4.2 管理設定檔

大部分設定檔以純文字的形式存在 /etc 目錄下,以下為部分檔案

目錄描述
/etc/cron*定義了 crond 排程執行的程式,如 cron.daily、cron.hourly
/etc/cups設定 CUPS 列印服務的檔案
/etc/default為各種公用程式設定預設值的檔案
/etc/httpd設定 Apache Web 伺服器行為
/etc/rc?.d針對每一種有效的系統狀態,都有一個單獨的 rc?.d 目錄:rc0.d (關閉狀態)、rc1.d (單一使用者狀態)、rc2.d (多使用者狀態)、rc3.d (多使用者加網路狀態)、rc4.d (使用者定義的狀態)、rc5.d (多使用者、網路與 GUI 登入狀態) 和 rc6.d (重新啟動狀態)
/etc/skel建立新使用者時,該目錄檔案被複製到新使用者的家目錄
/etc/sysconfig包含各種服務所建立和維護的重要系統設定檔
/etc/systemd包含與 systemd 公用程式 (用來管理啟動程序和系統服務) 相關聯的檔案
/etc/xinetd.d包含一組檔案,每一個檔案定義了一個 xinetd 守護行程 (Daemon) 監聽某一個特定埠號 (Port) 所需的隨選網路服務

8.4.3 管理紀錄檔和 Systemd.Journal

rsyslogd 和 systemd 的 journalctl 命令

rsyslogd 及前身 syslogd 將檔案放到 /var/log 目錄

8.5 使用其他管理帳號

例如 lp、apache、bin 等使用者,預設不允許登入

如果要登入需要將預設 shell 從 /sbin/nologin/bin/false 改為真實 shell,例如 /bin/bash

8.6 檢查和設定硬體

8.6.1 檢查硬體

透過 dmesgjournalctl 命令查看 Linux 啟動時硬體檢測資訊以及驅動程式載入資訊

透過 lspci 命令查看電腦上 PCI 匯流排 (Bus) 及連接到這些匯流排上的裝置,lsusb 命令列出 USB 裝置資訊,lscpu 列出處理器資訊

8.6.2 使用可載入模組

如果想添加未被正確識別的硬體,可能需要手動載入

  1. 列出可載入模組

透過 lsmod 命令,如要獲取某一模組詳情,透過 modinfo -d 模組 命令

  1. 載入模組

使用 modprobe 命令載入任何被編譯並安裝到執行核心 (Kernel) 的模組

  1. 刪除模組

使用 rmmod 命令,或使用 modprobe -r 以將相依模組一起刪除

8.7 小結

在 Linux 中應該把各項服務 (http、git 等) 單獨建立使用者並限制登入權限以確保系統安全

第九章 安裝 Linux

圖形化安裝不必多說,其他安裝可參考 Arch 參考手冊

我也寫了一篇比 Arch 手冊更入門的文章: 虛擬機器中 Arch Linux 安裝記錄 – yexca’Blog

另有遠端安裝例如 PXE 啟動之類因無法重現,無法理解