學會這 10 個技巧後,您將成為世界上最強大的 Linux® 系統管理員,整個世界是有點誇張,但要在一個大團隊中工作,這些技巧是十分必要的。學習 SHH 通道、VNC、密碼恢複、控制台偵察等等。各個技巧都附有例子,可以將這些例子複製到自己的系統中。
好的系統管理員區分在效率上。如果一位高效的系統管理員能在 10 分鐘內完成一件他人需要 2 個小時才能完成的任務,那麼他應該受到獎勵(得到更多報酬),因為他為公司節約了時間,而時間就是金錢,不是嗎?
技巧是為了提高管理效率。雖然本文不打算對所有 技巧進行討論,但是我會介紹 “懶惰” 管理員所用的 10 個基本法寶。這些技巧可以節約時間 —— 即使沒有因為高效而得到更多的報酬,但至少可以有更多的時間去玩。
技巧 1:卸載無響應的 DVD 磁碟機
網路新手的經曆:按下伺服器(運行基於 Redmond 的作業系統)DVD 磁碟機上的 Eject 按鈕時,它會立即彈出。他然後抱怨說,在大多數企業 Linux 伺服器中,如果在那個目錄中運行某個進程,彈出就不會發生。作為一名長期的 Linux 管理員,我會重啟機器。如果我不清楚正在運行什麼,以及為何不釋放 DVD 磁碟機,我則會彈出磁碟。但這樣效率很低。
下面介紹如何找到保持 DVD 磁碟機的進程,並輕鬆彈出 DVD 磁碟機:首先進行類比。在 DVD 磁碟機中放入磁碟,開啟一個終端,裝載 DVD 磁碟機:
# mount /media/cdrom
# cd /media/cdrom
# while [ 1 ]; do echo "All your drives are belong to us!"; sleep 30; done
現在開啟第二個終端並試著彈出 DVD 磁碟機:
# eject
將得到以下訊息:
umount: /media/cdrom: device is busy
在釋放該裝置之前,讓我們找出誰在使用它。
# fuser /media/cdrom
進程正在運行,無法彈出磁碟其實是我們的錯誤。
現在,如果您是根使用者,可以隨意終止進程:
# fuser -k /media/cdrom
現在終於可以卸載磁碟機了:
# eject
fuser 很正常。
技巧 2:恢複出現問題的螢幕
嘗試以下操作:
# cat /bin/cat
注意!終端就想垃圾一樣。輸入的所有內容非常零亂。那麼該怎麼做呢?
輸入 reset。但是,輸入 reset 與輸入 reboot 或 shutdown 太接近了。嚇得手心冒汗了吧 — 特別是在生產機器上執行這個操作時。
放心吧,在進行此操作時,機器不會重啟。繼續操作:
# reset
現在螢幕恢複正常了。這比關閉視窗後再次登陸好多了,特別是必須經過 5 台機器和 SSH 才能到達這台機器時。
技巧 3:螢幕協作
來自產品工程的進階維護使用者 David 打電話說:“為什麼我不能在您部署的這些新機器上編譯 supercode.c”。
您會問他:“您啟動並執行是什麼機器?”
David 答道:“ Posh”。(這個虛夠的公司將它的 5 台生產伺服器以紀念 Spice Girls 的方式命名)。這下您可以大顯身手了,另一台機器由 David 操作:
# su - david
轉到 posh:
# ssh posh
到達之後,運行以下代碼:
# screen -S foo
然後呼叫 David:
“David,在終端運行命令 # screen -x foo”。
這使您和 David 的會話在 Linux shell 中聯結在一起。您可以輸入,他也可以輸入,但彼此可以看到對方所做的事情。這避免了進入其他層次,而且雙方都有相同的控制權。這樣做的好處是 David 可以觀察到您的故障診斷技巧,並能準確瞭解如何解決問題。
最後大家都能看到問題所在:David 的編譯指令碼對一個不在此新伺服器上的舊目錄進行了寫入程式碼。將它裝載後再次編譯即可解決問題,然後 David 繼續工作。您則可以繼續之前的娛樂活動。
關於此技巧需要注意的一點是,雙方需要以同一使用者登入。screen 命令還可以:實現多個視窗和拆分螢幕。請閱讀手冊頁擷取更多相關資訊。
對於 screen 會話,我還有最後一個技巧。要從中分離並讓它開啟,請輸入 Ctrl-A D (即按住 Ctrl 鍵並點擊 A 鍵。然後按 D 鍵)。
然後通過再次運行 screen -x foo 命令可以重新拼接起來。
技巧 4:找回根密碼
如果忘記根密碼,就必須重新安裝整台機器。更慘的是,許多人都會這樣做。但是啟動機器並更改密碼卻十分簡單。這並非在所有情況下都適用(比如設定了一個 GRUB 密碼,但也忘記了),但這裡介紹一個 Cent OS Linux 樣本,說明一般情況下的操作。
首先重啟系統。重啟時會跳出 1 所示的 GRUB 螢幕。移動方向鍵,這樣可以保留在此螢幕上,而不是進入正常啟動。
圖 1. 重啟後的 GRUB 螢幕
然後,使用方向鍵選擇要啟動的核心,並輸入 E 編輯核心行。然後便可看到 2 所示的螢幕:
圖 2:準備編輯核心行
再次使用方向鍵反白以 kernel 開始的行,按 E 編輯核心參數。到達 3 所示的螢幕時,在圖 3 中所示的參數後追加數字 1 即可:
圖 3. 在參數後追加數字 1
然後按 Enter 和 B,核心會啟動到單一使用者模式。然後運行 passwd 命令,更改使用者根密碼:
sh-3.00# passwd
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
現在可以重啟了,機器將使用新密碼啟動。
技巧 5:SSH 後門
有很多次,我所在的網站需要某人的遠程支援,而他卻被公司防火強阻擋在外。很少有人意識到,如果能通過防火牆到達外部,那麼也能輕鬆實現讓外部的資訊進來。
從本意講,這稱為 “在防火牆上砸一個洞”。我稱之為 SSH 後門。為了使用它,必須有一台作為中介的串連到 Internet 的機器。
在本例中,將這樣台機器稱為 blackbox.example.com。公司防火牆後面的機器稱為 ginger。此支援人員的機器稱為 te