首頁 > 軟體

RHEL&CentOS 6/7重置root使用者密碼詳解

2020-06-16 17:20:04

本文以重置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

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

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-03/141433p2.htm


IT145.com E-mail:sddin#qq.com