忘記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,從硬盤重新啟動系統,測試並確保口令已經被正確改變。