萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 單用戶模式全解析:進入方法、維修實戰與安全防護

Linux 單用戶模式(Single User Mode,Runlevel 1)是系統維護的「急救模式」:僅載入核心必要服務,不啟動網路、不啟動圖形介面、Root 免密碼登入、擁有完整系統控制權。本文詳述三大引導器進入方法、實戰維修場景與四項關鍵防護措施,防止未授權存取。

三大引導器進入單用戶模式

1. 軟碟引導(歷史參考)

啟動至 BOOT: 提示符,輸入:

linux single

2. LILO 引導

LILO 提示符下輸入完整核心參數(以 Red Hat 7.2 核心 2.4.7-10 為例):

kernel /boot/vmlinuz-2.4.7-10 single root=/dev/hda3
  • single:指定單用戶模式(或 1、s、S)。
  • root=:指定根分區,若僅安裝 Linux 通常為 /dev/hda1,第二顆硬碟為 /dev/hdb1。

3. GRUB 引導(現代標準)

  1. 啟動選單按 c 進入命令列(若設密碼先按 p 輸入)。
  2. 輸入:
kernel /boot/vmlinuz-2.4.7-10 single root=/dev/hda3
initrd /boot/initrd-2.4.7-10.img
boot (hd0,2)
  • (hd0,2):第一顆硬碟第三分區(GRUB 分區從 0 起算)。
  • 核心檔名、initrd 檔名需對應實際 /boot 內容。

單用戶模式實戰維修場景

  • 重設 Root 密碼:passwd root。
  • 修復 /etc/fstab 錯誤導致開機失敗:掛載根分區 mount -o remount,rw /,編輯修正。
  • 檔案系統修復:fsck -y /dev/hda3(確保分區未掛載或唯讀掛載)。
  • SELinux 造成拒絕存取:setenforce 0 或編輯 /etc/selinux/config 設 SELINUX=permissive。
  • 清除錯誤的 /etc/passwd/shadow:從備份還原或手工重建。

四項關鍵防護:防止未授權進入

  1. 保護 /etc/inittab:防止惡意修改 id:3:initdefault: 為 id:1:initdefault: 導致每次開機進入單用戶。
    chmod 600 /etc/inittab(僅 root 可讀寫),或 chattr +i /etc/inittab 鎖定不可改。
  2. 縮短 LILO 等待時間:編輯 /etc/lilo.conf 設 delay=0 或極短值,執行 lilo 更新。需進入時改用軟碟/光碟啟動。
  3. 設定 GRUB 密碼:grub-md5-crypt 產生雜湊,寫入 /boot/grub/grub.conf:
    password --md5 $1$hash...。鎖定選單編輯與命令列存取。
  4. 設定 BIOS/CMOS 密碼:防止透過修改啟動順序(光碟/USB 優先)繞過引導器保護。實體機箱加鎖更佳。

現代系統:systemd 目標替代 Runlevel

systemd 系統(RHEL 7+/CentOS 7+/Ubuntu 16.04+)無 Runlevel 概念,對應目標:

  • 單用戶模式:systemd.unit=rescue.target 或啟動選單編輯核心參數加 systemd.unit=rescue.target(或 1、s、single 兼容參數)。
  • 急救模式:systemd.unit=emergency.target(更極小,不掛載本地檔案系統)。

總結

單用戶模式是雙刃劍:維修利器亦是安全漏洞。掌握三大引導器進入技巧、熟悉常見維修指令,**務必實施四項防護(inittab 權限、引導器密碼、BIOS 密碼、實體安全)**,讓急救模式只屬於授權管理員。

copyright © 萬盛學電腦網 all rights reserved