歡迎您光臨本站 註冊首頁

passwd被誤清的奇遇遭遇

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

幾乎所有的linux入門書籍里都有這樣一句警世哲言:在對伺服器進行日常管理的時候建議使用普通的帳號;只有當確實需要使用root許可權操作的時候,才切換到root用戶.於是芸芸眾生的我輩謹記前人的教誨,以普通的帳號管理伺服器.但是,但是,我們還年輕嘛,總是耐不住會嘗試一些新鮮的東東,於是乎也便有了本文:)

一日同事說:我正在用一個普通帳號登陸伺服器用vi編輯passwd的文件,改的東西挺多,我不想退出vi了,應該咋操作來著?我不加思索的回了句:":!sudo tee %".因為我本身就用的ubuntu的桌面,也相當於普通帳號,於是我也迅速的打開一個shell試了下這個命令.有句話怎麼說來著?好奇心殺死貓!估計就是說的我吧.輸完命令以後,要輸入當前用戶的密碼,

而輸入完密碼以後是空白,敲了幾個回車以後發現不對,趕緊ctrl c,這時已經被無情的提示:"當前文件被修改,是否載入".

輸入:L,然後無情的發現,文件已經被清空啦!

腦子一下了就炸了!oh,my god,passwd文件清空了會怎麼樣呢?這時同事回話說:"試了,passwd文件被清空了.我是在遠程操作託管的機器.".我趕緊回了句:"冷靜!先別退出shell,我在想辦法.".腦子迅速進入了高速旋轉階段,怎麼辦,怎麼辦,怎麼辦.我還記得07年的時候,有一次總監在遠程操作的時候,不小心輸了一個:"rm -rf /",等了幾秒鐘,發現不對,趕緊停了下來,然後比對刪除的文件,從另一個配置差不多的機器上,拷過來的.小心的檢查了所有配置文件,然後又重啟了一下以驗證配置對不對.於是,我第一想法就是從其它機器上拷備一個passwd文件過來.可是奇迹發生了.

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的描述:

  1. 由於你的過失,丟失象 /etc/passwd 這樣的重要文件,是一件非常痛苦的事.Ubuntu 系統周期性的將他們備份到 /var/backups/. 當你恢復這些文件的時候,你需要設置適當的許可權.
  2. # cp /var/backups/passwd /etc/passwd
  3. # chmod 644 /etc/passwd

因為看到這個資料才有了這次的passwd誤刪情景再現,但是重啟恢復passwd的文件的時候我看了/var/backups文件夾,裡面竟是空的.

而在看到這篇資料的時候,我有看過本機的/var/backups,裡面是有東東的,passwd和passwd.bak文件的內容是一樣的!

也許我的再現場景太早了,剛安裝完系統不久,還沒有到ubuntu所謂的"周期".無論如何,這次知道怎麼在不同的情況下恢復passwd文件了吧:)順便說下,那個不退出vi就以特權許可權保存文件的vi命令是:":w !sudo tee %".一定要記清楚了喲~


[火星人 ] passwd被誤清的奇遇遭遇已經有402次圍觀

http://coctec.com/docs/linux/show-post-50615.html