位置: 编程技术 - 正文

Shell脚本经典之Fork炸弹的分析与预防(shell脚本 -ne 0)

编辑:rootadmin

推荐整理分享Shell脚本经典之Fork炸弹的分析与预防(shell脚本 -ne 0),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shell脚本实例精讲,shell脚本用法,shell脚本 !,shell脚本用法,shell脚本 -ne 0,shell脚本-lt,shell脚本 !,shell脚本 !,内容如对您有帮助,希望把文章链接给更多的朋友!

fork炸弹介绍

众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能。这样的一款shell中自然不会缺少函数这个元素来帮助程序进行模块化的高效开发与管理。于是产生了由于其特殊的特性,bash拥有了fork炸弹。Jaromil在年设计了最为精简的一个fork炸弹的实现。

所谓fork炸弹是一种恶意程序,它的内部是一个不断在fork进程的无限循环,fork炸弹并不需要有特别的权限即可对系统造成破坏。fork炸弹实质是一个简单的递归程序。由于程序是递归的,如果没有任何限制,这会导致这个简单的程序迅速耗尽系统里面的所有资源。

现在来看看Jaromil设计的最简单的fork炸弹

Shell脚本经典之Fork炸弹的分析与预防(shell脚本 -ne 0)

fork炸弹分析

一行看似无法理解的只有个字符的命令,即可占用掉所有系统的资源。其实,这行命令如果这样写成bash script就不难理解了

第 1 行 说明下面要定义一个函数,函数名为小数点,没有可选参数。 第 2 行 表示函数体开始。 第 3 行 是函数体真正要做的事情,首先它递归调用本函数,然后利用管道调用一个新进程(它要做的事情也是递归调用本函数),并将其放到后台执行。 第 4 行 表示函数体结束。 第 5 行 并不会执行什么操作,在命令行中用来分隔两个命令用。从总体来看,它表明这段程序包含两个部分,首先定义了一个函数,然后调用这个函数。 第 6 行 表示调用本函数。

冒号”:”其实是函数名,这个bash脚本就是在不断的执行该函数,然后不断fork出新的进程。

fork炸弹预防

那么,有没有办法扼制这种情况的发生呢?答案是肯定的,只需设置进程的limit数即可。

在上面的例子中,我们将用户可以创建的最大进程数限制为 ,执行fork炸弹会迅速fork出大量进程,此后会由于资源不足而无法继续执行。使用工具ulimit即可设置各种限制数,具体的请参考该工具的man或help。

fork 炸弹让我们认识到了递归函数的强大功能,同时也意识到一旦使用不当,递归函数所造成的破坏将是巨大的。实际上,fork 炸弹只是一个非常简单的递归函数,它并不涉及参数传递、返回值等问题,而这些问题在使用bash编程时是否有完善的支持呢?在bash中编写递归函数时应该注意相关问题。

总结

标签: shell脚本 -ne 0

本文链接地址:https://www.jiuchutong.com/biancheng/378209.html 转载请保留说明!

上一篇:利用Shell 脚本解决DDOS攻击问题(shell脚本-lt)

下一篇:shell脚本实现多进程运行的方法示例(shell脚本总结)

  • 即征即退需要缴纳税款吗
  • 个税申报本期收入指的是
  • 差额征收如何做账
  • 应付销售方代垫的运费计入什么科目
  • 所属税务机关是根据什么分配的
  • 小规模季度超过45万了怎么缴纳
  • 捐赠支出税前扣除
  • 机票退票手续费报销凭证
  • 母公司不经营分公司能报税吗?
  • 普通年金的定义
  • 职工福利费在期间费用表中怎么填
  • 营改增的相关规定
  • 会务费发票税点是多少
  • 施工费增值税税率是9%
  • 私立医院增值税税率是多少
  • 开个体户需要什么资料
  • 新25项工资薪金是什么
  • 自然灾害造成的存货净损失计入什么科目
  • 无形资产有使用期限
  • 六税两费包括哪三税
  • 汇总表格怎么设置
  • 专家费1000元个人所得税到底是税前还是税后
  • 1697509422
  • 增值税免税标准30万含不含税
  • 报税残疾人保障金怎么算
  • iphone如何录音转文字
  • 计入固定资产成本的费用
  • 借条字迹不清楚有效吗
  • 确认收入的必要条件
  • 如何分清福利性劳动
  • 外商投资企业有哪些出资方式
  • PHP:JDToGregorian()的用法_日历函数
  • 塞巴斯蒂安电影 豆瓣
  • 用vue做的登录界面
  • 会计核算方法体系构成
  • vue如何销毁页面
  • 网上报税有哪些
  • 油卡预付卡发票能入费用吗怎么入账
  • 工业 智能
  • php array_fill
  • 帝国cms真的很好用
  • 3步搞定纯真ip数量
  • 融资租赁的种类
  • 汇算清缴费用调整怎么做账
  • 新公司成立需要刻哪些章
  • 企业所得税的成本怎么填?
  • 哪些情况可以开立基本账户
  • 小规模季度交税分录怎么做
  • sql-server
  • 小企业长期债券投资交易费用
  • 借款费用为什么可以企业所得税税前扣除
  • 委托加工物资账务
  • ukey要交服务费吗
  • 直接减免税款的例子
  • 出口退税哪些商品不能退
  • 商业企业会计制度变迁论文
  • Linux下安装MySQL5.7.19问题小结
  • 怎么彻底卸载visual
  • win2003好用吗
  • ubuntu server教程
  • win7麦克风没声音怎么设置方法从计算机
  • Win10虚拟内存怎么转移
  • linux中dhcp
  • win8系统开机启动项怎么设置
  • linux命名命令
  • 优化linux系统的方法
  • windows10打开此电脑
  • unity粒子制作ui特效
  • shell 批量执行命令
  • Python定时器实例代码
  • python中读取excel
  • Node.js node-schedule定时任务隔多少分钟执行一次的方法
  • js 函数写法
  • 深入浅出python
  • Android 自定义view
  • each和each
  • springmvc接收json需要配
  • 河南国税局变更法人流程
  • 国税纳税服务有哪些项目
  • 副局长是由局长任命的吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设