在我們應用Linux系統時,如果你有一段時間沒有進行登陸了,你丟失了Root口令,這怎麼辦?難道就束手無策、重裝系統?怎樣才能恢復Linux口令呢?本文為你講解恢復Linux口令的知識。
其實,恢復Linux口令並不是一件很難的事情。Linux口令的恢復有2個方面: 一是給用戶產生一個新的口令,使用戶能夠重新登錄系統; 二是找出用戶原來的口令,而不是以新口令代替舊口令。一般情況下,用戶只希望能夠再次登錄進入系統即可,而不是獲得原口令,也就是這裡所說的第一個方面,相對而言,這方面要容易實現得多。
Linux口令的恢復是系統維護的一種典型情況,本文中提到的一些方法從系統維護的角度出發,不僅適用於Linux口令的恢復,也適用於因為某些原因不能正常登錄進系統時的維護工作,對Linux系統的管理維護有參考作用。
本文中所有提到的恢復Linux口令的方法均在實踐中測試通過,所用的Linux系統主要是RedHat Linux For x86,在實際口令恢復中,可能因Linux發行商、發行版本、處理器和硬盤等的不同而略有不同,但相差不會很大。其中一些方法也適用於其他Unix系統口令的恢復,甚至Windows等操作系統口令的恢復。
1. 緊急修復模式
在無法啟動Linux時,常常需要通過磁盤、光盤或其他方法啟動Linux基本環境,進入Linux緊急修復模式。在緊急修復模式下,能夠訪問硬盤上的Linux系統文件,恢復系統正常,包括恢復口令等。
2. 單用戶模式 Linux有多個運行級別,如單用戶模式、無網絡服務多用戶模式、完全多用戶模式和X11圖形多用戶模式等運行級別。
單用戶模式是指系統運行在惟一用戶——Root用戶模式下,進入此模式時,系統只是加載了可運行的最低軟硬件配置,以Root直接進入,沒有口令驗證。
在單用戶模式下,可以用passwd命令來更改用戶口令,也可以直接對/etc/passwd等賬戶口令文件進行讀寫,達到口令恢復的目的。
3. 修改口令文件
Linux口令文件有2種保存形式: 一種是把賬戶信息和經加密後的口令密文都保存在/etc/passwd文件中,此形式不夠安全,在早期Unix中采用;另一種是把賬戶信息和口令密文分開存放,/etc/passwd文件用於保存賬戶信息,/etc/shadow文件用於保存口令密文。至於采用何種保存形式和加密算法,可以用/usr/sbin/authconfig程序來設置。
對於沒有shadow的passwd文件,只要把相應賬戶的口令字段刪除,即可不經口令驗證直接登錄系統,例如某passwd文件的root賬戶如下:
root:$1$dPTzzYkE$Zd3Vs6yCu
VH8RC1gwKXX01:0:0:root:/root:/bin/bash
把其修改為:
root::0:0:root:/root:/bin/bash
如果是有shadow的passwd文件,其口令字段以“x”字母代替,口令密文保存在Shadow文件中。可以刪除passwd文件中的“x”字母,或者刪除shadow文件中的口令密文,都可以使相應用戶不經口令驗證直接登錄系統,達到口令恢復的目的。
4. 口令還原
有些情況下,想找出被丟失的原始口令,而不是登錄系統去產生一個新的口令。但是,Linux使用的是DES(加密函數式是Crypt)或MD5(函數式是Md)加密算法,由於計算量之大,它們幾乎都沒有可能被逆向破解。DES口令密文是有13個ASCII字符的字符串,而MD5口令密文的啟始字符總是“$1$”。
雖然很難逆向破解,但要通過口令密文找出原始口令也不是不可能的,從一個字典或一些字符的排列組合中提取字符串,提取出來的字符串用同樣的加密算法加密,把產生的密文與口令密文比較,如果一致則表明該字符串即為原始口令,從而達到口令還原的目的。如果口令很復雜,使用此種方法也是很難找出原始口令的,但用戶對自己口令的長度、采用的字符等會有大致的印象,這使得成功的可能性會更大。
破解Linux口令的工具有很多,如John the Ripper、Crack by Alex Muffett和Cracker Jack等等,其中John the Ripper的功能最為強大,速度也最快。
5. 系統攻擊破解
如果能夠關閉電源重新啟動系統,那麼很容易恢復口令,但有時Linux系統上運行著非常重要的服務,不能直接關閉電源,否則會對系統和數據產生破壞。
像這種在系統運行的情況下獲得系統口令,往往是比較困難的,但由於系統管理員對操作系統和應用程序的版本、配置等情況有著全面的了解,加上沒有防火牆和入侵檢測系統等的防護,那麼發現和利用系統漏洞的機會還是不少的,口令恢復的成功機會還是有的。
這方面涉及的內容太復雜,在此就不多做介紹了。如果確有這方面的需求,最好由專業人士來幫忙,以免破壞系統和數據。
輕松恢復Linux口令,讓你不用犯愁。