我們知道,root用戶在Linux中是相當重要的,其地位如同Windows中的Adminstrator
有了root權限我們還能修改其他用戶的密碼,可是,如果root用戶的密碼丟失該怎么辦?
不用擔心,解決辦法很簡單,但還需理解運行級別和密碼之間的微妙關系
注:以redhat為基礎發行的版本都可使用此方法,此處以CentOS做實驗
找回密碼的方法
第1步:進入grub菜單,在需要啟動的系統選項上按下 e
第2步:選擇第2行以kernel開頭的選項,再次按下e
第3步:編輯最后一行,在末尾加上1(用運行級別1的方式啟動,稍后講解為什么是1),按Enter
第4步:回到grub菜單后,按下b啟動系統
看第一行,我們以single user模式成功登錄系統,直接就是root用戶
然后,我們用passwd修改密碼即可,簡單吧~
但是,知道如何找回root用戶密碼是不夠的,難道你不奇怪為什么剛剛要在編輯啟動項的時候加 1 嗎?
此處涉及到了/etc/inittab這個文件,只要Linux一啟動便會自動加載它
下面來看看內容
以#開頭的都是注釋文件,真正有意義的是最后一行,其中的3就代表着當前系統所使用的運行級別
那么,這0~6代表的7個選項各是什么意思呢?
0 關機
1 單用戶模式,直接以root用戶登錄,不需要密碼
2 多用戶,但沒有網絡服務
3 多用戶,有網絡服務
4 未使用,保留給用戶自定義
5 圖形界面
6 系統重啟
我們只需替換一下文件末行的數字3,就能更換運行級別了
但,需要注意的是,上面很明確的標識了0和6是不可以作為默認運行級別的
因為一旦開機之后,系統便會自動加載運行級別,然后不停的 關機/重啟
此外,你可以直接在命令行中試試 init 6 ,看看是不是真的重啟了
倘若真有壞人惡意修改了inittab文件,你只需回到上面的步驟,在grub中啟動到單一模式(別忘了,kernel那一行末尾加1)
然后改回 etc/inittab 文件即可