Linux 系統重置用戶密碼指南
在 Linux 系統運維中,重置用戶密碼(尤其是 root 密碼)是一項核心技能。當您忘記密碼時,可以通過進入單用戶模式或恢復模式來修改密碼。此方法適用于大多數 Linux 發行版,如 RHEL/CentOS、Debian/Ubuntu 等。重置原理是:通過系統啟動時的 GRUB 菜單修改內核參數,進入特權 shell 環境,掛載文件系統為可讀寫,然后使用 passwd
命令修改密碼。下面我將以重置 root 密碼為例,詳細說明步驟(普通用戶密碼的重置方法類似,但通常需要 root 權限)。操作前,請確保您有物理或虛擬控制臺訪問權限,并備份重要數據以防意外。
步驟 1: 重啟系統并進入 GRUB 菜單
- 重啟 Linux 系統,在啟動初期(通常是 BIOS/UEFI 畫面后),快速按下
Esc
、Shift
或特定功能鍵(如 F2/F12,具體鍵位因硬件而異)進入 GRUB 啟動菜單。 - 在菜單中,選擇默認的 Linux 內核條目,但不要直接啟動。按
e
鍵編輯該條目的啟動參數。
步驟 2: 修改內核參數進入單用戶模式
- 在編輯界面中,找到以
linux
或linux16
開頭的行(可能包含ro
或rw
參數)。將ro
(只讀)替換為rw init=/bin/bash
或rw single
(具體參數因發行版而異)。例如,修改為:
這會使系統啟動時直接進入 Bash shell,無需密碼驗證。linux /vmlinuz-... ro root=UUID=... rw init=/bin/bash
- 修改后,按
Ctrl+x
或F10
啟動系統。系統會進入單用戶模式的 shell 環境(通常顯示#
提示符)。
步驟 3: 掛載文件系統為可讀寫
- 在 shell 中,文件系統可能仍以只讀方式掛載。運行以下命令將其重新掛載為可讀寫:
這個命令確保您能修改系統文件,包括密碼文件。如果遇到錯誤,檢查分區路徑(如mount -o remount,rw /
/dev/sda1
),必要時使用mount
命令查看當前掛載點。
步驟 4: 運行 passwd 命令修改密碼
- 重置 root 密碼:直接運行
passwd
命令,然后根據提示輸入新密碼兩次。例如:
或者,使用非交互式方式(適合腳本或快速重置):passwd
將echo "new_password" | passwd --stdin root
new_password
替換為您的實際密碼。此命令通過管道設置密碼,無需手動輸入。 - 重置普通用戶密碼:如果您需要重置其他用戶(如
username
)的密碼,且當前在 root shell 中,運行:
然后輸入新密碼。注意:普通用戶密碼重置通常要求您有 root 權限;如果忘記普通用戶密碼且無 root 權限,必須先按本指南重置 root 密碼。passwd username
步驟 5: 處理 SELinux 和文件系統上下文(可選)
- 如果系統啟用了 SELinux(常見于 RHEL/CentOS),必須重置文件系統安全上下文,否則重啟后可能無法登錄。運行:
此命令在下次啟動時觸發 SELinux 重新標記文件系統。如果未啟用 SELinux,可跳過此步。touch /.autorelabel
步驟 6: 正常重啟系統
- 退出 shell 并重啟系統。運行:
或exec /sbin/reboot
系統將正常啟動。使用新密碼登錄驗證是否成功。exec /sbin/init
注意事項
- 發行版差異:Debian/Ubuntu 可能使用
recovery mode
選項代替 GRUB 編輯;Arch Linux 需要從 Live USB 操作。詳細參考官方文檔。 - 安全性:單用戶模式不驗證權限,確保物理訪問安全,避免未授權修改。
- 成功關鍵:如果密碼重置后登錄失敗,檢查步驟 3 的文件系統掛載是否正確,或 SELinux 是否已處理。
- 普通用戶密碼重置捷徑:如果您已登錄 root 賬戶,無需重啟,直接運行
passwd username
即可修改普通用戶密碼。
通過以上步驟,您可以高效重置 Linux 系統中的用戶密碼。此方法在主流發行版上測試可靠,但操作時請謹慎,避免誤修改內核參數導致系統無法啟動。