RHEL/CentOS 6/7重置root用戶密碼——方法與過程

本文以重置root用戶密碼爲例,講解一下Linux運維工作中解決一般問題的過程和結果。重置root密碼這種問題的結果很簡單,重點是解決過程,供新手參考和借鑑,希望通過此文作爲新手能知道日常運維中解決一個問題的過程是怎樣的,以及從解決問題的過程中應該學到什麼。

人的思維總是會固化的,除非他自己深刻地認識到的確需要轉變。IT領域中的知識總是在不斷變化更新的,需要我們不停地去“增刪改查”自己的小知識庫。先前以爲達到某一個目的可以這樣做一件事情,可能一小段時間後就需要那樣做一件事情。

事情經過:

昨天一大學同學(本身可以說是Linux方面的小白)QQ上問我說,自己的Linux虛擬機使用正確的用戶名和密碼無法登錄到系統,提示用戶名和密碼不正確。

解決一般問題的思路:

作爲一個去爲他人解決問題的人,其思維軌跡應該是這樣的:

1.告訴她不要慌,問題總是能解決的,況且這是一個很簡單很常見的問題

2.如果她動手能力比較強,那麼把解決問題的思路告訴她,詢問她有沒有做過什麼特別的操作,幫她找到問題存在的原因防止類似問題再次發生

3.如果她動手能力和解決問題的能力較差,那麼可以遠程幫她或者直接告訴她有哪些簡單的方法可以自己看後就能使用,快速解決問題

4.如果不能遠程或者必須一步一步教告訴她如何做,那麼就需要知道足夠多的信息,不管是解決問題的方法還是去了解她那邊的情況:

(Remember:你可能是在爲傻子解決問題)

1)瞭解情況:問題是什麼,需求是什麼,問題的背景如何,瞭解此問題的嚴重性(緊急重要)?

2)收集信息:當前運行狀況如何,明確是一個怎樣的情況,什麼系統,運行環境是怎樣的?

3)繼續詢問和分析:問題是什麼時候發生的,如何發生的,做過那些操作?

4)解決過程:該如何幫助其解決?步驟1,2,3……備份、責任、認真、心懷敬畏、平常心……

4)遭遇和預測異常:如果解決不了,該如何去做?尋找Plan B,預測最糟糕的結果

4)總結分享:告知以後該怎麼做,如何預防類似問題

解決此問題的思路:

按照慣有的知識,通常忘記root密碼是一件非常簡單的事情,比如1.最簡單的方法是:進入單用戶模式,直接修改(瞭解其中的條件限制,balabala);2.複雜有效的方法:沒有安全的系統,使用livecd、livedvd等iso鏡像或者安裝光盤(注意版本和位數,否則易遭遇segmentation fault)中rescue模式(救援模式使用起來要比livecd方便),chroot後執行passwd命令或者直接修改/etc/shadow文件,云云。

注:救援模式(Rescue Model)存在於DVD和Minimal版本中,所以通常使用Minimal iso即可,不必非得用下載DVD的iso。

但是如文首所提到的,往往知識是需要更新,思維是需要改變的。就第一種最簡單有效的方法來說,RHEL6、7跟以前大不相同,單用戶模式下也會要求給出root用戶的密碼,因此想快速修改密碼必須另闢蹊徑。

快速解決類似問題的捷徑通常是這樣的:

1.快速確定關鍵詞,用Google或者百度(如果你喜歡和信任)搜索關鍵詞,篩選和快速瀏覽解決問題的文章(要求關鍵詞提煉能力和快速篩選有用信息的能力,這需要積累和經驗),憑藉自己的經驗和感覺去有選擇的試驗

其他需要的附加技能:英語、……

好的關鍵詞舉例:

1)Google:resetting root password site:redhat.com 或 rhel resetting root password  或 rhel6 forgot the root password.

2)百度:RHEL6 重置root密碼 或 RHEL6忘記root密碼

2.如果不幸運,搜索引擎沒有任何幫助,那麼官方網站(特別是官方文檔、手冊等)可能是一種快速解決問題的辦法

重置root用戶密碼是Linux日常管理使用中的一件很常見的管理性任務,因此官方文檔是解決問題最快的地方。雖然查找官方文檔需要對官方文檔的編排和分類比較熟悉,但能保證文檔的權威性。

有時通過某種方法行不通時,可能有別的原因,需要再排查排查,不要輕易放棄,多試幾次或者換個思路就會成功。某種原因可能在Bug和Wiki頁面上指出,比如RHEL/CentOS6.8以前SELinux的某個bug會導致root密碼無法重置。

幾個建議:

1.建議除非特殊需要,支持64位的硬件應當選擇安裝64位的Linux。

2.及時安裝更新,

3.安裝和使用Linux時遵循標準,不要太個性化

4.不要將所有雞蛋放在一個籃子裏,經常備份關鍵數據

5.使用虛擬化和Docker技術

重置root密碼方法:

第一種方法適用於7,第二種方法適用於6

一,以RHEL 7(7.3)爲例,列舉一個典型的方法:

1.打開系統電源,在GRUB2啓動界面出現時按下e編輯,刪除linux6或linuxefi對應行上的rhgb和quiet,在後面添加 init=/bin/sh,按下Ctrl+x,啓動Linux

Red Hat Enterprise Linux 7 64-2017-03-03-10-11-23

 Red Hat Enterprise Linux 7 64-2017-03-03-10-11-46

2.如果想使用SELinux,則執行/usr/sbin/load_policy -i命令,執行mount -o remount, rw / 後可以執行passwd命令修改root密碼,最後執行exec /sbin/init即可

 Red Hat Enterprise Linux 7 64-2017-03-03-10-15-37

Red Hat Enterprise Linux 7 64-2017-03-03-10-15-56

二,以救援模式爲例,在CentOS6中重置root密碼方法如下:

注:不必使用6.7的iso重置6.7系統中的root密碼,完全可以使用6.8的iso重置6.7的系統。

使用鍵盤上的上下箭頭選擇第3個“Rescue installed system”

centos6_Docker-2017-03-03-15-20-35

網絡可以選擇不開啓,取決於要做什麼

centos6_Docker-2017-03-03-15-25-32 

centos6_Docker-2017-03-03-15-25-43

centos6_Docker-2017-03-03-15-25-52

下圖中選擇繼續“Continue”,也可以使用“Advanced”加載SAN

centos6_Docker-2017-03-03-15-26-20

centos6_Docker-2017-03-03-15-26-28

centos6_Docker-2017-03-03-15-26-31 

centos6_Docker-2017-03-03-15-26-35

執行如下命令:

1.chroot /mnt/sysp_w_picpath

2.passwd

3.exit或者Ctrl+D 退出 chroot

4.exit或者Ctrl+D 退出 維護shell

centos6_Docker-2017-03-03-15-27-12

重啓系統

centos6_Docker-2017-03-03-15-27-25 

其他的辦法也有,就不在此一一列舉了,可以閱讀下面的連接查閱官方文檔。

可參考文檔:

  1. Red Hat, RHEL6:Basic System Recovery

  2. Red Hat, RHEL7:Changing and Resetting the Root Password

  3. CentOS, General:Resetting a Forgotten Root Password

tag:忘記root密碼,重置root密碼,解決問題

--end--

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章