而輸入完密碼以後是空白,敲了幾個回車以後發現不對,趕緊ctrl+c,這時已經被無情的提示:"當前文件被修改,是否載入".
oh,my lady gaga!看來沒了passwd文件還真不行,我直接被繳械了!咋辦呢?還好我還開着一個shell遠程連着一臺機器.趕緊把那臺機器的passwd文件cat一下,然後複製出來,但是還是無法直接保存到/etc/passwd.於是我決定重啓進救援模式.結果發現竟然連重啓都不讓,
誰讓我就坐在電腦前呢,直接按電源唄!
這時候直接進系統,已經進不了了,不斷的報錯.
我想進系統自帶的救援模式,但是設的啓動時間太短了,老是搶不過去,想想就算進那個模式也沒用,沒passwd文件估計也不讓登陸,還是直接用光盤吧.
光盤啓動選擇救援模式,直接選擇使用的系統,一路順暢!切到/etc下,查看passwd文件,果然空了.
不過還有一個passwd-的文件存在,看下文件大小及內容,和原來沒清空時差不多,那就好辦了,直接刪除passwd文件,將passwd-改名爲passwd.ok!reboot
我胡漢三又回來啦,哈哈~~
但是發現一個問題,這時候的機器名還是"I have no name",why呢?網上查資料說是passwd文件權限不對,於是看了一下,
發現確實不對,這樣的話,登陸shell的時候,普通用戶沒權限讀自己的用戶名?不管了,糾正權限,重啓!終於一切正常了~~
這件事已經過去幾個月了,前幾日翻資料的時候不小心翻看了ubuntu的官方wiki,裏面有一段關於rm /etc/passwd的描述:
- 由於你的過失,丟失象 /etc/passwd 這樣的重要文件,是一件非常痛苦的事。Ubuntu 系統週期性的將他們備份到 /var/backups/。 當你恢復這些文件的時候,你需要設置適當的權限。
- # cp /var/backups/passwd /etc/passwd
- # chmod 644 /etc/passwd
因爲看到這個資料所以纔有了這次的passwd誤刪情景再現,但是重啓恢復passwd的文件的時候我看了/var/backups文件夾,裏面竟是空的.
而在看到這篇資料的時候,我有看過本機的/var/backups,裏面是有東東的,而且passwd和passwd.bak文件的內容是一樣的!
也許我的再現場景太早了,剛安裝完系統不久,還沒有到ubuntu所謂的"週期".無論如何,這次知道怎麼在不同的情況下恢復passwd文件了吧:)順便說下,那個不退出vi就以特權權限保存文件的vi命令是:":w !sudo tee %".一定要記清楚了喲~
本文出自 “rainbird” 博客,請務必保留此出處http://rainbird.blog.51cto.com/211214/391842