chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

最為精簡的一個(gè)Linux Fork***解析

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

掃碼添加小助手

加入工程師交流群

轉(zhuǎn)自:http://blog.saymagic.cn/2015/03/25/fork-bomb.html

Jaromil在2002年設(shè)計(jì)了最為精簡的一個(gè)Linux Fork***,整個(gè)代碼只有13個(gè)字符,在shell中運(yùn)行后幾秒后系統(tǒng)就會宕機(jī):

:() { :|:& };:

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

:()

{

:|:&

};

更好理解一點(diǎn)的話就是這樣:

bomb()

{

bomb|bomb&

};

bomb

因?yàn)閟hell中函數(shù)可以省略function關(guān)鍵字,所以上面的十三個(gè)字符是功能是定義一個(gè)函數(shù)與調(diào)用這個(gè)函數(shù),函數(shù)的名稱為:,主要的核心代碼是:|:&,可以看出這是一個(gè)函數(shù)本身的遞歸調(diào)用,通過&實(shí)現(xiàn)在后臺開啟新進(jìn)程運(yùn)行,通過管道實(shí)現(xiàn)進(jìn)程呈幾何形式增長,最后再通過:來調(diào)用函數(shù)引爆***。因此,幾秒鐘系統(tǒng)就會因?yàn)樘幚聿贿^來太多的進(jìn)程而死機(jī),解決的唯一辦法就是重啟。

Bomb一下

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

看,運(yùn)行一段時(shí)間后直接報(bào)出了-bash: fork: Cannot allocate memory,說明內(nèi)存不足了。并且我在二號終端上嘗試連接也沒有任何反應(yīng)。因?yàn)槭翘摂M的云主機(jī),所以我只能通過主機(jī)服務(wù)商的后臺來給主機(jī)斷電重啟。然后才能重新登錄:

***危害

Fork***帶來的后果就是耗盡服務(wù)器資源,使服務(wù)器不能正常的對外提供服務(wù),也就是常說的DoS(Denial of Service)。與傳統(tǒng)1v1、通過不斷向服務(wù)器發(fā)送請求造成服務(wù)器崩潰不同,F(xiàn)ork***有種坐山觀虎斗,不費(fèi)一兵一卒斬?cái)橙擞隈R下的感覺。更嚇人的是這個(gè)函數(shù)是不需要root權(quán)限就可以運(yùn)行的。看到網(wǎng)上有帖子說某些人將個(gè)性簽名改為Fork***,結(jié)果果真有好奇之人中槍,試想如果中槍的人是在公司服務(wù)器上運(yùn)行的話,oh,!

預(yù)防方式

當(dāng)然,F(xiàn)ork***沒有那么可怕,用其它語言也可以分分鐘寫出來一個(gè),例如,python版:

import os

while True:

os.fork()

Fork***的本質(zhì)無非就是靠創(chuàng)建進(jìn)程來搶占系統(tǒng)資源,在Linux中,我們可以通過ulimit命令來限制用戶的某些行為,運(yùn)行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參數(shù)可以限制用戶創(chuàng)建進(jìn)程數(shù),因此,我們可以使用ulimit -u 20來允許用戶最多創(chuàng)建20個(gè)進(jìn)程。這樣就可以預(yù)防bomb***。但這樣是不徹底的,關(guān)閉終端后這個(gè)命令就失效了。我們可以通過修改/etc/security/limits.conf文件來進(jìn)行更深層次的預(yù)防,在文件里添加如下一行(ubuntu需更換為你的用戶名):

ubuntu - nproc 20

這樣,退出后重新登錄,就會發(fā)現(xiàn)最大進(jìn)程數(shù)已經(jīng)更改為20了,

這個(gè)時(shí)候我們再次運(yùn)行***就不會報(bào)內(nèi)存不足了,而是提示-bash: fork: retry: No child processes,很棒,此時(shí)說明Linux限制了***創(chuàng)建線程。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11622

    瀏覽量

    217827
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73078

原文標(biāo)題:解析超經(jīng)典的 Fork 炸彈

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Labview 解析dxf文件并顯示<

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

    電磁干擾防護(hù)與屏蔽系統(tǒng)軟件平臺精簡解析

    電子發(fā)燒友網(wǎng)站提供《電磁干擾防護(hù)與屏蔽系統(tǒng)軟件平臺精簡解析.doc》資料免費(fèi)下載
    發(fā)表于 10-16 16:56 ?1次下載

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

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

    復(fù)雜電磁環(huán)境構(gòu)建與測試軟件系統(tǒng)解析(精簡版)

    復(fù)雜電磁環(huán)境構(gòu)建與測試軟件系統(tǒng)解析(精簡版)
    的頭像 發(fā)表于 09-15 21:05 ?435次閱讀
    復(fù)雜電磁環(huán)境構(gòu)建與測試軟件系統(tǒng)<b class='flag-5'>解析</b>(<b class='flag-5'>精簡</b>版)

    電磁環(huán)境數(shù)據(jù)庫管理系統(tǒng)平臺軟件解析

    電磁環(huán)境數(shù)據(jù)庫管理平臺軟件解析(精簡版)
    的頭像 發(fā)表于 09-15 21:00 ?116次閱讀
    電磁環(huán)境數(shù)據(jù)庫管理系統(tǒng)平臺軟件<b class='flag-5'>解析</b>

    電磁脈沖防護(hù)系統(tǒng)平臺全面解析精簡版)

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

    電磁干擾防護(hù)與屏蔽系統(tǒng)平臺解析精簡版)

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

    電磁兼容與雷達(dá)隱身技術(shù)測試系統(tǒng)解析

    電磁兼容與雷達(dá)隱身技術(shù)測試系統(tǒng)解析精簡版)
    的頭像 發(fā)表于 09-15 17:11 ?317次閱讀
    電磁兼容與雷達(dá)隱身技術(shù)測試系統(tǒng)<b class='flag-5'>解析</b>

    【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】—— linux 進(jìn)程創(chuàng)建

    Linux進(jìn)程通信方式有這幾種: 1。管道 2。信號量 3。消息隊(duì)列 4。共享內(nèi)存 在本帖子中,我會講解fork(),exit()系統(tǒng)調(diào)用的實(shí)踐。通過應(yīng)用編程來實(shí)現(xiàn)系統(tǒng)調(diào)用。 1,進(jìn)程創(chuàng)建 打開
    發(fā)表于 09-01 20:49

    Linux權(quán)限體系解析

    你真的了解Linux權(quán)限嗎?大多數(shù)人只知道rwx,但Linux的權(quán)限體系遠(yuǎn)比你想象的復(fù)雜和強(qiáng)大。今天我們深入探討Linux的12位權(quán)限體系,這是每個(gè)運(yùn)維工程師都應(yīng)該掌握的核心知識。
    的頭像 發(fā)表于 07-23 16:57 ?584次閱讀

    文掌握Linux命令

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

    怎么結(jié)合嵌入式,Linux,和FPGA三個(gè)方向達(dá)到個(gè)均衡發(fā)展?

    在嵌入式領(lǐng)域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三個(gè)方向?qū)崿F(xiàn)均衡發(fā)展的夢想,然而實(shí)踐中卻面臨諸多挑戰(zhàn)。就像備受矚目的全棧工程師稚暉君,他從大學(xué)玩單片機(jī)起步,憑借將智能算法融入嵌入式而
    的頭像 發(fā)表于 06-25 10:08 ?638次閱讀
    怎么結(jié)合嵌入式,<b class='flag-5'>Linux</b>,和FPGA三<b class='flag-5'>個(gè)</b>方向達(dá)到<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>均衡發(fā)展?

    深度解析Linux中的DNS服務(wù)

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

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

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

    Linux系統(tǒng)中最重要的三個(gè)命令

    Linux三劍客是Linux系統(tǒng)中最重要的三個(gè)命令,它們以其強(qiáng)大的功能和廣泛的應(yīng)用場景而聞名。這三個(gè)工具的組合使用幾乎可以完美應(yīng)對Shell中的數(shù)據(jù)分析場景,因此被統(tǒng)稱為
    的頭像 發(fā)表于 03-03 10:37 ?792次閱讀