国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

最為精簡的一個Linux Fork***解析

Linux愛好者 ? 來源:博客 ? 作者:Saymagic ? 2021-09-07 16:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

轉自:http://blog.saymagic.cn/2015/03/25/fork-bomb.html

Jaromil在2002年設計了最為精簡的一個Linux Fork***,整個代碼只有13個字符,在shell中運行后幾秒后系統就會宕機:

:() { :|:& };:

這樣看起來不是很好理解,我們可以更改下格式:

:()

{

:|:&

};

更好理解一點的話就是這樣:

bomb()

{

bomb|bomb&

};

bomb

因為shell中函數可以省略function關鍵字,所以上面的十三個字符是功能是定義一個函數與調用這個函數,函數的名稱為:,主要的核心代碼是:|:&,可以看出這是一個函數本身的遞歸調用,通過&實現在后臺開啟新進程運行,通過管道實現進程呈幾何形式增長,最后再通過:來調用函數引爆***。因此,幾秒鐘系統就會因為處理不過來太多的進程而死機,解決的唯一辦法就是重啟。

Bomb一下

秉著不作不死的心態,我們也來運行一下,于是我將矛頭指向云主機,我使用了國內的一個2G內存的云主機,首先在本地開啟兩個終端,在一個終端連接云主機后運行***,幾秒后再嘗試用另外一個終端登錄,效果可以看下面Gif圖:

看,運行一段時間后直接報出了-bash: fork: Cannot allocate memory,說明內存不足了。并且我在二號終端上嘗試連接也沒有任何反應。因為是虛擬的云主機,所以我只能通過主機服務商的后臺來給主機斷電重啟。然后才能重新登錄:

***危害

Fork***帶來的后果就是耗盡服務器資源,使服務器不能正常的對外提供服務,也就是常說的DoS(Denial of Service)。與傳統1v1、通過不斷向服務器發送請求造成服務器崩潰不同,Fork***有種坐山觀虎斗,不費一兵一卒斬敵人于馬下的感覺。更嚇人的是這個函數是不需要root權限就可以運行的??吹骄W上有帖子說某些人將個性簽名改為Fork***,結果果真有好奇之人中槍,試想如果中槍的人是在公司服務器上運行的話,oh,!

預防方式

當然,Fork***沒有那么可怕,用其它語言也可以分分鐘寫出來一個,例如,python版:

import os

while True:

os.fork()

Fork***的本質無非就是靠創建進程來搶占系統資源,在Linux中,我們可以通過ulimit命令來限制用戶的某些行為,運行ulimit -a可以查看我們能做哪些限制:

ubuntu@10-10-57-151:~$ ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 7782

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

cpu time (seconds, -t) unlimited

max user processes (-u) 7782

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

可以看到,-u參數可以限制用戶創建進程數,因此,我們可以使用ulimit -u 20來允許用戶最多創建20個進程。這樣就可以預防bomb***。但這樣是不徹底的,關閉終端后這個命令就失效了。我們可以通過修改/etc/security/limits.conf文件來進行更深層次的預防,在文件里添加如下一行(ubuntu需更換為你的用戶名):

ubuntu - nproc 20

這樣,退出后重新登錄,就會發現最大進程數已經更改為20了,

這個時候我們再次運行***就不會報內存不足了,而是提示-bash: fork: retry: No child processes,很棒,此時說明Linux限制了***創建線程。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11760

    瀏覽量

    219023
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73965

原文標題:解析超經典的 Fork 炸彈

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    解析Linux的進程、線程和協程

    、基礎概念 進程(Process) 進程是計算機中運行的程序的實例,它是操作系統中最基本的執行單元之。每個進程都有自己的獨立內存空間、系統資源和代碼執行流。這意味著進程的崩
    發表于 12-22 11:00

    Labview 解析dxf文件并顯示<

    /WSfacf1429558a55de185c428100849a0ab7-5f35.htm 下圖是我做的文件解析,涵蓋了常用的些圖元對象,有單線段、多段線、表格、文字、標注、云
    發表于 11-14 22:45

    電磁干擾防護與屏蔽系統軟件平臺精簡解析

    電子發燒友網站提供《電磁干擾防護與屏蔽系統軟件平臺精簡解析.doc》資料免費下載
    發表于 10-16 16:56 ?2次下載

    電磁兼容與電磁干擾快速評估平臺系統解析(精簡版)

    電磁兼容與電磁干擾快速評估平臺系統解析(精簡版)
    的頭像 發表于 09-15 21:36 ?673次閱讀
    電磁兼容與電磁干擾快速評估平臺系統<b class='flag-5'>解析</b>(<b class='flag-5'>精簡</b>版)

    復雜電磁環境構建與測試軟件系統解析(精簡版)

    復雜電磁環境構建與測試軟件系統解析(精簡版)
    的頭像 發表于 09-15 21:05 ?688次閱讀
    復雜電磁環境構建與測試軟件系統<b class='flag-5'>解析</b>(<b class='flag-5'>精簡</b>版)

    電磁環境數據庫管理系統平臺軟件解析

    電磁環境數據庫管理平臺軟件解析(精簡版)
    的頭像 發表于 09-15 21:00 ?337次閱讀
    電磁環境數據庫管理系統平臺軟件<b class='flag-5'>解析</b>

    電磁脈沖防護系統平臺全面解析精簡版)

    電磁脈沖防護系統平臺全面解析精簡版)
    的頭像 發表于 09-15 17:19 ?1316次閱讀
    電磁脈沖防護系統平臺全面<b class='flag-5'>解析</b>(<b class='flag-5'>精簡</b>版)

    電磁干擾防護與屏蔽系統平臺解析精簡版)

    電磁干擾防護與屏蔽系統平臺解析精簡版)
    的頭像 發表于 09-15 17:17 ?850次閱讀
    電磁干擾防護與屏蔽系統平臺<b class='flag-5'>解析</b>(<b class='flag-5'>精簡</b>版)

    電磁兼容與雷達隱身技術測試系統解析

    電磁兼容與雷達隱身技術測試系統解析精簡版)
    的頭像 發表于 09-15 17:11 ?528次閱讀
    電磁兼容與雷達隱身技術測試系統<b class='flag-5'>解析</b>

    【HZ-T536開發板免費體驗】—— linux 進程創建

    Linux進程通信方式有這幾種: 1。管道 2。信號量 3。消息隊列 4。共享內存 在本帖子中,我會講解fork(),exit()系統調用的實踐。通過應用編程來實現系統調用。 1,進程創建 打開
    發表于 09-01 20:49

    Linux權限體系解析

    你真的了解Linux權限嗎?大多數人只知道rwx,但Linux的權限體系遠比你想象的復雜和強大。今天我們深入探討Linux的12位權限體系,這是每個運維工程師都應該掌握的核心知識。
    的頭像 發表于 07-23 16:57 ?858次閱讀

    文掌握Linux命令

    作為名運維工程師,熟練掌握Linux命令是基本功中的基本功。無論是日常工作中的系統維護,還是面試時的技術考核,Linux命令都是繞不開的核心技能。本文將從實戰角度出發,系統梳理運維工程師必須掌握的
    的頭像 發表于 07-22 15:23 ?613次閱讀

    怎么結合嵌入式,Linux,和FPGA三方向達到均衡發展?

    在嵌入式領域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三方向實現均衡發展的夢想,然而實踐中卻面臨諸多挑戰。就像備受矚目的全棧工程師稚暉君,他從大學玩單片機起步,憑借將智能算法融入嵌入式而
    的頭像 發表于 06-25 10:08 ?863次閱讀
    怎么結合嵌入式,<b class='flag-5'>Linux</b>,和FPGA三<b class='flag-5'>個</b>方向達到<b class='flag-5'>一</b><b class='flag-5'>個</b>均衡發展?

    深度解析Linux中的DNS服務

    dns,Domain Name Server,它的作用是將域名解析為 IP 地址,或者將IP地址解析為域名。
    的頭像 發表于 04-09 16:13 ?873次閱讀

    從零開始馴服Linux):ZYNQ-Linux啟動文件構建全解析

    本帖最后由 jf_85110202 于 2025-3-20 17:42 編輯 從零開始馴服Linux):ZYNQ-Linux啟動文件構建全解析 ZYNQ系列芯片集成了ARM
    發表于 03-20 16:48