最近在拜讀《Unix & Linux 大學教程》這本書,這本書寫得不錯。關於Unix和Linux比較介紹比較深入根源,內容也比較詳細,很值得去拜讀。
在書中的附錄中有一介紹忘記root口令的處理方法,我感覺很不錯想分享給大家,希望能給大家帶來協助。
當使用自己的Unix或Linux系統時,您自己就是系統管理員,這意味著如果出現問題的話,沒有其他人協助您。如果忘記了root的口令該怎麼辦呢?
下面給出幾種曲型Linux系統中的解決方案,適用於大部分的現代版的Linux。
一. 如果您有sudo的許可權,那麼您可以使用下述命令快速地改變root口令:
sudo passwd root
二. 如果沒有sudo許可權,或者如果您系統被配置成不允許sudo改變root口令,那麼您將發現改變root口令需要一些更精巧的措施。
通常的策略就是通過一個Linux光碟片啟動系統,接管電腦的管理。然後掛載硬碟上的主(根)檔案系統,一旦完成這一步,就可以使用該掛載點作為
檔案系統的根,然後使用標準的passwd程式更改root口令。
1.從Live CD引導Linux。
2.按<Ctrl-Alt-F1>按鍵組合,進入命令列。
3.改變到超級使用者:
sudo su
4.開機磁碟分割表編輯器:
parted(如果系統沒有parted,則需要使用另一種分區編輯器,例如fdisk、cfdisk或sfdisk。)
5.在parted中,顯示主硬碟的分區資訊:
print
6.記下包含Linux系統的硬碟的裝置名稱,例如/dev/hda或/dev/sda。
7.記下主Linux分區號,例如:分區號2。
如果不能確定哪個是根分區,可以查看ext3、ext2 reiserfs或xfs類型的檔案系統。如果這樣的分區不止一個,則記下所有的號碼。
8.停止parted程式。
quit 現在應該會返回到shell提示。
9.為硬碟上的檔案系統建立一個掛載點(在這個例子中,稱之為harley):
mkdir /mnt/harley
10.通過使用由parted程式所獲得的裝置名稱和分區號,掛載硬碟上的根檔案系統。例如,如果裝置名稱是/dev/hda,分區號是2,則使用的命令為:
mount /dev/hda2 /mnt/harley
如果在第7步中,發現不止一個可能的分區,則選擇其中一個分區。如果選擇的分區號不正確,再嘗試另一個。
11.確認已經掛載了根分區。為測試這一點,可以查看影子檔案(/etc/shadow)是否在這個分區中,影子檔案中包含有所需要的口令:
ls /mnt/harley/etc/shadow
如果沒有口令檔案,則掛載的不是根分區。返回到第(10)步,試著掛載另一個分區。繼續這兩步,直至成功掛載了根分區。
12.改變硬碟系統上的root口令。
有許多方法可以完成這一步。最簡單的方法就是使用新掛載點作為檔案系統的根運行passwd命令。這隻需一條簡單命令:
chroot /mnt/charley passwd
這個chroot(change root,改變佷)命令意味著:“臨時將檔案樹的根改變為/mnt/harley,然後執行命令passwd。”
因為已經位於超級使用者模式,所以使用passwd命令將改變root口令。而且因為檔案系統的根已經臨時改變為/mntharley,所以使用的口令檔案是
位於硬碟上的口令檔案(/mnt/harley/etc/shadow)。
通過這種方式,就能夠改變硬碟上系統的root口令。
13.移除CD,從硬碟重新啟動系統,測試並確保口令已經被正確改變。