操作場景
本節操作適用于Linux操作系統云主機,出現因/etc/passwd文件損壞導致云主機無法登錄的問題。
說明
本節操作為緊急恢復系統方法,需要在單用戶模式下會將系統備份初始備份/etc/passwd-文件替換已損壞的/etc/passwd文件,該操作會造成自行添加的用戶丟失(包括應用運行的用戶,可以參考/etc/shadow文件添加其他賬號)。
本節操作涉及重啟云主機操作,重啟云主機會造成業務中斷,請謹慎操作。
問題描述
Linux系統中多個服務啟動失敗:Failed to start Login service 、Filed to start Authorization service。
待系統啟動后登錄,提示密碼錯誤。

根因分析
/etc/passwd和/etc/shadow文件記錄所有的用戶信息,每個用戶都有一個對應的記錄行,如果該文件損壞或者誤刪除會導致登錄服務(systemd-logind.service)啟動失敗,因此用戶無法登錄。
處理方法
-
使用控制臺提供的遠程登錄方式登錄云主機。單擊遠程登錄操作面板上方的“發送CtrlAltDel”按鈕,重啟虛擬機。
-
確認開始重啟后,立即反復單擊上下鍵,阻止系統繼續啟動,在出現內核選項時按字母鍵e進入內核編輯模式。
-
找到linux16行末尾,刪除不需要加載的參數(ro參數開始到末尾)。修改ro為rw,以讀寫方式掛載根分區。并添加rd.break,然后執行Ctrl+X。


-
執行以下命令切換至/sysroot目錄。
# chroot /sysroot
-
執行以下命令檢查/etc/passwd文件。
cat /etc/passwd
-
確認passwd文件已被破壞,執行以下命令使用系統初始的備份passwd-文件替換損壞的passwd文件。
# cp /etc/passwd- /etc/passwd
說明該操作會造成自行添加的用戶丟失,如果為應用運行的用戶會導致應用啟動失敗,待修復后請自行添加用戶。
- 執行兩次以下命令退出當前目錄。
# exit - 云主機自動重啟,使用root可登錄云主機,查看/etc/passwd已正常。
