新概念運維之管理員們破壞的數據總要比黑客多
原創【新概念運維】本次《新概念運維》內容取材自Softpanorama網站的sysadmin horror stories專欄(系統管理員的恐怖故事)。大家在CU論壇上應該也看過類似的誤操作收集帖,不過Softpanorama總結的更全面,而且有很多經驗豐富的老UNIX管理員們分享經驗。
經典語錄
管理員們破壞的數據比任何黑客窮其一生所能破壞的數據都要多。——Rick Furniss
如果不想學,經驗有個毛用。
只要時間足夠長,任何事都會發生在任何人身上。——蕭伯納
經驗是***的老師,但傻瓜只認識這一位老師。——本杰明·富蘭克林
概述
人孰無過?但悲催者莫過于身為root犯了錯,更悲催者在于你身為root在生產機器上犯了錯,最悲催者在于你身為root在生產機器上犯了錯,結果發現沒有可用的備份——于是你不得不跟那些重要的數據說拜拜了。
所以,就需要對這些悲催事兒進行歸納總結,好以史為鑒。無論在怎樣的情況下,任何錯誤都應被記錄為文檔以警醒自己和后人。
在這些錯誤中最常見的問題在于管理員對所處場景的混淆,因為管理員經常會同時操作多個窗口。
第二大原因應該在于對危險性的錯誤評估。人們對于危機的反應通常是感性的,所以系統管理員們有時候可能只是犯了個小錯誤,結果由于下意識的反應過度導致了更大的問題。
對于這兩點,一些通用建議如下:
1、使用VNC、Worker等圖形化工具進行服務器連接,并為不同的機器設置不同的背景桌面,這樣可以大大減少在錯誤的機器上操作的幾率。
2、如果堅持使用命令行方式登錄,那么盡量僅在你當前處理的機器上登錄為root,在其他機器上只用你自己的沒有root權限的id。
其他建議包括:
- 對于要應用在生產環境的變更進行嚴密的記錄和重重測試。
- 保證睡眠,減少疲勞。
- 少喝咖啡。
- 在日常操作中,嚴格按照計劃執行,不要做多余的、心血來潮的事情。
- 質量***。對管理員而言,欲速則不達是一條真理。要養成急事緩辦的習慣。
那些悲催的事兒
為了從他人的經驗中更有效率的總結學習,作者將之前Anatoly Ivasyuk整理過的一些材料重新進行了分類,看起來更加一目了然。本次《新概念運維》將僅翻譯這個分類目錄,相信大家一看就能明白。如果想看更多的故事,可以在原網站閱讀(英文)。
1、不能用的備份
要記住,如果事情搞砸了,備份是你恢復系統的***一根救命稻草。
2、鎖上門發現自己在門外
這包括幾個情景:
- root賬號訪問關了
- 把網絡服務關閉了
- 被剛修改完的防火墻規則擋在墻外了
- root密碼忘了
3、在錯誤的機器上操作
這可能跟服務器的命名規則有關,你可能想輸入WEB200結果輸入了WEB300;這可能是因為你打開了好幾個終端窗口,在急急忙忙去吃飯前跑到了錯誤的服務器上執行命令。所以,執行命令之前,一定仔細看清楚shell提示符上寫的是哪臺機器。避免同時打開多個終端窗口,畢竟關掉再打開窗口只不過是幾秒鐘的事兒,卻可以避免一些糟糕事情的發生。
4、在錯誤的路徑下操作
一般遇到這種情況,都是由疲勞或壓力過大導致的神志不清所引起的。
5、不懂正則表達式
菜鳥管理員們可能沒意識到“.*”可以匹配“..”。此類對象最怕跟chmod,chown和rm命令一起執行,尤其是如果再加上一個-r參數的情況。
6、find命令惹的禍
find是個復雜的命令,用錯了后果會很嚴重。尤其是在沒好好測試的情況下使用了-exec參數的情況。
7、對使用/或系統目錄作為home目錄的用戶進行操作
進行刪除用戶的操作,結果發現把整個系統都刪干凈了……而且如果刪除用戶的操作通過crontab執行,可能會痛苦好幾天。
8、對重要命令的參數理解不深入,或者沒經過測試就在生產環境下執行復雜的命令
這種問題的發生通常來自于趕時間。常見問題包括:
- 執行復雜的rm命令之前沒用ls先測試一遍:在決定rm掉一串東西之前,一定要記得先用ls看看這串東西都是啥!更不用說要和帶有exec參數的find命令一起執行的時候。
- 執行rm的時候打錯了字:打錯字總是難免的,復制粘貼最靠譜。
9、改錯了文件所有者
把chown和find一起用經常會出現這種問題,所以請先測試。
10、對系統安全性過于偏執
目前的很多安全建議其實都是愚蠢的,并且對生產效率產生了副作用。比如遵循安全建議更改了/bin和/usr/bin的所有者,結果誰也登陸不進去了。
11、趕時間
單獨把趕時間列成一條,是因為趕時間是造成問題最有利的元兇。
12、打補丁引發的血案
打補丁會引發問題。一般而言,Sun的補丁測試工作做得非常全面;IBM和HP做得少點;Novell放出的更新補丁則有可能讓整個系統掛掉,更新完了可能會發現Sendmail或Bind這樣的開源系統少了些什么零件。往生產環境更新補丁前必須走測試流程,這是常識。另外,更新***用DVD,別相信什么官網的在線更新。
13、糟糕的自動化腳本
尤其是如果自動化腳本中有刪除文件的操作的情況下,編寫不嚴謹的自動化腳本會讓用戶覺得十分糟糕。
14、多個管理員同時在一臺服務器上工作
最常見的,一個管理員走了,走之前改了root密碼……
15、不成熟的優化和系統清理
有時候你看著某個文件多余,雖然不知道它存在的目的但是出于不順眼將其刪除,結果會發現這是一個愚蠢的決定。
16、不同操作系統產生的混亂
比如在Solaris下,運行級5(run level 5)代表重啟,而Linux下的運行級5代表在有網絡和X11的環境下運行系統。
17、純犯傻
純犯傻是可以預防的。另外如果你確定某個人是菜鳥,那么***別讓他擁有root的密碼。
【有關新概念運維】
在日常的系統管理運維工作中,每個人對于系統、工具、應用、命令、架構以及工作中的其他方面都會有自己的理解。理解方式的不同也意味著不同的認知,因此,這種理解方式的交流,也可能碰撞出更多思維的火花,讓每個人從另一個角度了解自己每天從事的工作。51CTO系統頻道從日常和運維人員的交流中收集這些理解方式,組合成短文集,名為《新概念運維》。
【編輯推薦】