位置: 编程技术 - 正文

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脚本总结)

  • 工程设备一览表
  • 餐饮娱乐服务费进项税不能从销项税额抵扣
  • 一次性收取加盟费 所得税
  • 开票系统技术维护费怎么抵扣
  • 企业所得税的亏损怎么弥补
  • 个体工商户属于非法人组织吗
  • 销售购物取得的收入
  • 营改增利息收入不能抵扣
  • 国内支付业务收入怎么算
  • 行政单位盘盈固定资产应按什么入账
  • 个人减税具体政策
  • 当月的费用次月入账可以么
  • 代开专票作废了扣了两次税怎么办?
  • 企业所得税利润总额和财务报表利润总额不一致
  • 土地投资入股交什么税
  • 对外来发票金额怎么算
  • 学校发票抬头类型填企业还是非企业
  • 未达起征点销售额和小微企业免税销售额
  • 免税的销售额要怎么填入报表
  • 非雇佣劳务
  • 企业购买理财产品收益会计分录
  • 资产负债表损益表现金流量表
  • 转让地下建筑物交土地增值税吗
  • 进项和销项单价的比例
  • 跨区域提供建筑服务个人所得税
  • 合伙企业个人所得税计算案例
  • 收到利息收入会计分录怎么写
  • 发放股票股利的会计分录怎么写
  • php4位数的随机字符
  • 什么是集成显卡长什么样
  • 不动产进项税额转出计算公式
  • el-cascader数据渲染时不出现文字
  • 进程process
  • 进口应税消费品所支付的金额不包括
  • 怎么计提企业所得税
  • 心形岛屿叫什么名字
  • php文本统计访问量
  • 微信小程序自定义tabbar
  • 前端cgi
  • dnf指令键&怎么设置
  • ps调整边缘在哪里快捷键
  • 万能转换器mp4
  • 发票校验码二维码看不到了怎么查
  • 应征增值税不含税销售额是什么
  • 车船使用税代征手续费
  • 多付款退回怎样写说明
  • mongodb $sum
  • 电子缴款凭证在哪里找
  • 企业所得税的扣除是什么意思
  • mysql优化命令
  • 五险一金没有金
  • 事业单位的股东是谁
  • 会计处理的相关知识点
  • 职工体检可以从工会经费支出
  • 国际快递能发吗
  • 携税宝费用可以抵扣增值税吗
  • 固定资产改变用途折旧处理
  • 应收应付可以相互冲销吗
  • 简易征收可以抵税吗
  • 财务成本控制总结
  • Mysql中explain作用详解
  • mac系统不能用
  • windowsxp怎么查看用户名密码
  • win7软件界面显示不全怎么办
  • Win7中TrustedInstaller.exe进程占用内存高该怎么解决?
  • 激活 win7
  • windows8截屏
  • 使用JQuery实现Ctrl+Enter提交表单的方法
  • 制作网站页面
  • 用python三角形
  • linux命令及含义
  • unity shader视频教程
  • js 选择语句
  • html5 jquery
  • 如何获取电子户口簿
  • 发票缴销办理流程图
  • 莅临指导和莅临交流的区别
  • 外资企业怎样
  • 北京朝阳区地税局地址电话
  • 资源税是地方税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设