ESC

開始輸入,可搜尋發票、服務、域名、工單,以及 更多...

搜尋... Ctrl+K
Linux 伺服器

忘記 Linux root 密碼怎麼辦?重置教程 2026

5 個步驟 7 分鐘閱讀 20 次閱讀 0
本文目錄

伺服器 root 密碼丟失且沒有配置金鑰登入時,SSH 已無法進入,但只要能訪問伺服器的控制臺,就可以在啟動階段重置密碼。本文介紹三種常用方法:GRUB 中使用 rd.break(RHEL 系)、init=/bin/bash(通用)以及救援模式掛載磁碟修改,幫你在不重灌系統、不丟資料的前提下找回訪問許可權。

要點速覽

  • 忘記 Linux root 密碼時,只要能訪問伺服器控制臺,就可以在啟動階段重置密碼,無需重灌系統,也不會丟失網站、資料庫等業務資料。
  • 在 Rocky Linux 9、AlmaLinux 9 等 RHEL 繫系統上,推薦在 GRUB 中追加 rd.break 重置 root 密碼,並且必須執行 touch /.autorelabel 讓 SELinux 重新標記檔案上下文。
  • 在 Ubuntu 22.04/24.04 和 Debian 12 上,推薦在 GRUB 的 linux 行追加 init=/bin/bash 進入 shell 後用 passwd root 重置密碼。
  • 當 GRUB 設定了密碼或在 VNC 中看不到選單時,可以進入救援模式掛載原系統根分割槽,再通過 chroot 修改 root 密碼。
  • IMIDC 雲 VPS 可在客戶中心產品詳情頁開啟 VNC 控制臺進行此類應急恢復,獨立伺服器的遠端控制或救援需求可提交工單處理。

適用環境 / 準備工作

  • 系統:Rocky Linux 9、AlmaLinux 9(推薦 rd.break);Ubuntu 22.04/24.04、Debian 12(推薦 init=/bin/bash)。CentOS 7 等舊系統同樣適用 rd.break。
  • 控制臺訪問:在 IMIDC 客戶中心的產品詳情頁開啟 VNC 控制臺;獨立伺服器可能需要 IPMI/KVM,若產品未提供或不確定,請提交工單由工作人員協助。
  • 磁碟未加密(LUKS 加密盤需要先輸入加密口令)。
  • 操作前建議在客戶中心建立快照或確認已有備份(如產品支援)。

操作步驟

步驟 1:通過 VNC 重啟並進入 GRUB 選單

在 VNC 控制台中傳送 Ctrl+Alt+Del 或在客戶中心執行重啟。看到 GRUB 啟動選單時迅速按方向鍵停住;Ubuntu 預設隱藏選單,可在開機時按住 Shift(BIOS 啟動)或連續按 Esc(UEFI 啟動)調出。

選中預設核心,按 e 進入編輯模式,找到以 linux 開頭的那一行(RHEL 系可能是 linux 或 linuxefi)。

步驟 2A:Rocky / AlmaLinux 使用 rd.break

在 linux 行末尾追加 rd.break,若存在 console=ttyS0 之類的序列埠引數而 VNC 無輸出,可將其刪除。按 Ctrl+X 啟動,進入 switch_root:/# 提示符後依次執行:

mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel
exit
exit

touch /.autorelabel 必不可少:它讓 SELinux 在下次啟動時重新標記檔案上下文,否則可能因 /etc/shadow 標籤錯誤而無法登入。重新標記需要幾分鐘,期間系統會自動再重啟一次,請耐心等待。

步驟 2B:Ubuntu / Debian 使用 init=/bin/bash

在 linux 行中把 ro 改為 rw,刪除 quiet splash,並在行末追加 init=/bin/bash,按 Ctrl+X 或 F10 啟動。得到 root@(none):/# 提示符後執行:

mount -o remount,rw /
passwd root
sync
exec /sbin/init

此模式下 systemd 未執行,普通的 reboot 命令無效,因此用 exec /sbin/init 繼續正常啟動。若系統卡住,可在 VNC 中執行 echo b > /proc/sysrq-trigger 強制重啟(務必先 sync)。

提示:init=/bin/bash 同樣適用於 RHEL 系,但之後仍需 touch /.autorelabel。

步驟 3:救援模式(無法編輯 GRUB 時)

如果 GRUB 設定了密碼或 VNC 看不到選單,可使用救援系統(Rescue)。若客戶中心未提供救援模式入口,請提交工單申請掛載救援 ISO。進入救援系統後:

lsblk -f                          # 找到原系統根分割槽,例如 /dev/vda1
mount /dev/vda1 /mnt
# 若根分割槽是 LVM,先執行 vgchange -ay,再掛載 /dev/mapper/xxx-root
for d in dev proc sys; do mount --bind /$d /mnt/$d; done
chroot /mnt passwd root
touch /mnt/.autorelabel           # 僅 SELinux 系統(Rocky/Alma)需要
umount -R /mnt
reboot

步驟 4:登入驗證並做好善後

用新密碼通過 SSH 登入。如果仍提示 Permission denied,檢查 /etc/ssh/sshd_config.d/ 中是否停用了 root 密碼登入——這種情況下應改用 VNC 登入後配置 SSH 金鑰。重置完成後建議立即配置金鑰認證,並把密碼儲存進密碼管理器。

常見問題 FAQ

重置 root 密碼會丟失伺服器資料嗎?

不會。以上方法只修改 /etc/shadow 中的密碼雜湊,不會改動網站、資料庫等業務資料。但操作控制臺存在誤操作風險,建議事先備份。

Rocky Linux 改完密碼後還是登入不了?

最常見原因是漏了 touch /.autorelabel,SELinux 拒絕讀取新的 shadow 檔案。重新進入 rd.break 補上該命令即可。

能在客戶中心直接重置 root 密碼嗎?

部分雲產品可能支援線上重置,但這依賴映象中的代理程式與產品類型。請以 IMIDC 客戶中心產品詳情頁的實際功能為準,若沒有相關入口,可按本文手動操作或提交工單。

VNC 控制臺裡鍵盤輸入錯亂怎麼辦?

可能是鍵盤佈局不一致,儘量避免輸入特殊符號,先設一個簡單的臨時密碼,登入 SSH 後再用 passwd 改為高強度密碼。

總結

只要擁有控制臺訪問許可權,忘記 root 密碼並不需要重灌系統:RHEL 系優先使用 rd.break 並記得自動重標記 SELinux,Debian/Ubuntu 使用 init=/bin/bash,GRUB 不可用時再藉助救援模式。IMIDC 的雲 VPS 提供 VNC 控制臺用於此類應急恢復,獨立伺服器的遠端控制或救援需求可通過客戶中心工單提交,技術團隊 7x24 小時響應。

相關閱讀

這篇文章有幫助嗎?

相關教程