Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux Root 密碼重置實戰:單用戶模式與 GRUB 中斷啟動流程詳解

編輯:Linux 教學

遺忘 Root 密碼是運維常見場景。本文詳細記錄通過 GRUB 中斷啟動進入單用戶模式(Runlevel 1 / Emergency Mode)重置 Root 密碼的完整操作流程,並強調物理安全防範與生產環境合規要求。

核心原理

Linux 啟動過程中,GRUB 菜單允許編輯內核啟動參數。追加 rd.break (RHEL/CentOS 7/8) 或 init=/bin/bash (通用) 可在文件系統掛載前獲得 Root Shell,隨後重掛載 /sysroot 為讀寫模式修改 /etc/shadow。

RHEL/CentOS 7/8 標準流程

  1. 重啟系統,在 GRUB 菜單按 e 編輯啟動項
  2. 找以 linux / linuxefi 開頭的行,行尾追加 rd.break
  3. 按 Ctrl+x 啟動,進入 switch_root 環境
  4. 重掛載系統根分區為讀寫:
    mount -o remount,rw /sysroot
  5. 切換根環境:
    chroot /sysroot
  6. 修改密碼:
    passwd root
    # 輸入新密碼兩次
  7. 關鍵步驟:啟用 SELinux 重標記(否則下次啟動失敗):
    touch /.autorelabel
  8. 退出 chroot、重啟:
    exit
    exit
    # 或 reboot

通用流程(適用 Debian/Ubuntu/舊版)

  1. GRUB 編輯內核行,追加 init=/bin/bash
  2. 啟動後獲得 Root Shell,根分區通常已掛載為只讀
  3. 重掛載讀寫:mount -o remount,rw /
  4. 修改密碼:passwd root
  5. 同步磁碟:sync
  6. 重啟:reboot -f (強制重啟,繞過 Systemd)

GRUB 2 密碼保護:防止未授權重置

生產環境必須為 GRUB 設置密碼,防止物理接觸者輕易重置:

# 生成密碼雜湊
grub2-mkpasswd-pbkdf2
# 輸入密碼,輸出類似 grub.pbkdf2.sha512.10000.XXXX

# 編輯 /etc/grub.d/40_custom
cat <<EOF >> /etc/grub.d/40_custom
set superusers="admin"
password_pbkdf2 admin grub.pbkdf2.sha512.10000.XXXX
EOF

# 重新生成配置
grub2-mkconfig -o /boot/grub2/grub.cfg
# UEFI 系統:grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

物理安全警示

「只要物理接觸硬盤,單用戶模式即可獲取 Root 權限。」—— 這是物理安全的鐵律。雲主機同理:控制台訪問權限等同物理接觸。

  • 機房門禁、機櫃鎖、服務器機箱鎖
  • BIOS/UEFI 設置啟動密碼、禁用外部設備啟動
  • GRUB 密碼保護(如上)
  • 磁碟加密(LUKS)保護靜態數據
  • 雲平台:嚴格控制控制台訪問權限、啟用 MFA

合規檢查清單


法律聲明:本文僅供合法授權系統管理員恢復自身系統訪問權限使用。未經授權嘗試重置他人系統密碼屬於非法入侵行為,嚴厲禁止。

Copyright © Windows教程網 All Rights Reserved
項目檢查命令/方法合規標準
GRUB 密碼grep -A5 'set superusers' /boot/grub2/grub.cfg已設置 pbkdf2 雜湊密碼
單用戶模式需密碼grep sulogin /usr/lib/systemd/system/emergency.serviceExecStart=-/usr/sbin/sulogin
磁碟加密lsblk -f | grep crypto_LUKS關鍵分區已加密
審計日誌ausearch -m USER_LOGIN -ts today記錄所有登入嘗試