在工作中經常會碰一些同事沒做好記錄,時間久了就忘記自己服務器的管理員密碼或者一些同事離職沒做好交接導致后來的同事不知道系統管理員密碼的情況。所以今天就說說如果碰到這些情況我們該怎么重置原root密碼。
本篇我們主要針對三個版本進行root密碼的重置:
一、centos 6.X及之前的版本
二、CentOS 7.X的版本
三、Ubuntu18.04的版本(實測Ubuntu16的版本也適用)
第一部分:針對CentOS 6.x及之前的版本
首先,我們需要重啟系統,等系統進入grub引導菜單時,找到當前系統的引導項。
接著我們通過方向鍵選擇需要使用的引導系統的內核上,然后按鍵盤e鍵,進入到編輯狀態。
然后通過上下方向鍵,選中帶有kernel指令的那一行,繼續按e鍵,編輯該行,在該行末尾按空格鍵,然后添加single
選擇kernel這一行
按下空格接著輸入single
修改完成之后,按回車鍵,返回到剛才的界面。
最后按b鍵,系統開始引導。
這樣就切換到單用戶模式下,單用戶模式與windows的安全模式類似,只啟動最基本的系統,網絡以及應用服務均不啟動。單用戶模式啟動完畢,系統自動進入命令行狀態下,輸入passwd,系統提示輸入兩次新的密碼,就可修改密碼。
密碼修改完成后,只需輸入init 3,然后回車,切換到多用戶模式下。用root登陸系統即可。
第二部分:CentOS 7.X版本
在CentOS7.0版本之后,linux的機制發生了變化。在系統引導方面,使用grub2代替了之前的grub的引導,init初始化程序也更換成了systemd初始化程序,隨之而來,root密碼重置的方法也發生了變化。
1. 重啟系統,待系統啟動到grub2引導菜單時,找到當前系統引導選項,按e鍵,進入編輯模式。
2.然后找到以linux16開頭的那行,把ro修改成rw,再在行末尾按下空格鍵,輸入init=/bin/sh
3.添加完成后,按ctrl+x組合鍵進入單用戶模式。
4.進入單用戶模式后,創建.autorelabel
touch /.autorelabel
5.接著就可以執行passwd命令重置密碼了。
6. 密碼修改完后,需要重啟。
直接執行reboot命令已經無效,需要輸入全路徑命令:
exec /sbin/init
這樣就完成了密碼重置,正常登陸系統,查看密碼是否修改成功。
第三部分:針對Ubuntu18.04版本
系統重啟,調出菜單。
通過上下鍵,選擇第二個【Advanced options for Ubuntu】按回車。
選擇相應內核的recovery mode模式。
選擇最高的Linux內核版本對應的recovery mode模式,即系統和密碼恢復模式,如下圖的位置,按鍵盤上的e編輯啟動項,不要按回車鍵,再重申一次,不要按回車鍵。
修改grub啟動選項。
找到recovery momodeset,然后將他刪除,替換為quiet splash rw init=/bin/bash,然后按F10。
按下F10后,進入如下界面:
輸入passwd root 回車
接著就會提示你輸入新的密碼
出現如下頁面說明修改密碼成功
最后重啟系統
輸入exec /sbin/init