Linux Fork Bomb
:(){ :|: & };: 是一個bash函式,以 Fork Bomb 聞名,是一個拒絕服務攻擊的 Linux 系統。如果你好奇地去執行了這個命令,那麼趕快重啟系統吧~!
命令解析
1 2 3 4 |
:() { : | : & };: |
- :在這裡是一個函式名,我們定義之,並在後面執行它。
- :|:& ,:函式的輸出通過管道傳給另一個冒號函式作為輸入,並且在後臺執行。
- { }; 標識著裡面的內容是一個函式主體。
- 最後一個 :為定義完成後的一次函式執行。
原理解析
- 首先需要說明的是:是一個shell內建命令,所以上面這段程式碼只有在bash中才可能產生fork炸彈,因為在其他一些shell中,內建命令的優先順序高於函式,所以執行 :,總是執行內建命令。(:是一個空命令,while true等同於 while :,常用作佔位符)
- 先來看看函式的主體 :|:&,使用管道的時候是兩個程式同時開始執行。
- 所以當執行一個:函式時,產生兩個新程式,然後一個原來的程式退出,這樣不停地遞迴下去,就產生了一個無限遞迴。按照這個增長模式的化,其增長趨勢約為2n。
總結
Linux 中還有很多這樣存在這陷阱的命令,這也正是我喜歡 Linux 系統的原因,充滿著探索性。
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!
任選一種支付方式