位置: 编程技术 - 正文

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

  • 无形资产处置收益计入
  • 所得税申报表填写样本
  • 怎么开具商业承兑票据
  • 经济法中企业营业收入包括哪些?
  • 附加税印花税个税申报实训心得
  • 小规模纳税人取得的专票转为一般纳税人之后能抵扣吗
  • 留底的预缴税款怎么处理?
  • 低值易耗品库存
  • 企业购进废旧厂房的分录
  • 联通租赁官网
  • 开出转账支票的摘要怎么写
  • 停车场收入怎么做账
  • 雇主责任险是否属于财产保险
  • 财务怎么查询微信转账单号真假
  • 水电费差价收入计算增值税公式是怎样的?
  • 转让股权怎么写简单
  • 价格调节基金税率和计税依据
  • 加油票不打公司会怎么样
  • 国家税务金税四期
  • 三证合一对纳税有影响吗
  • 什么是往来科目
  • 购买股权属于什么科目
  • 厂家给返点算拿回扣吗
  • excel中在多个单原格中输入相同数据
  • 城建税是增值税的附加税吗
  • 会计分录的正确书写格式图片
  • h3cmsr3020路由器
  • 苹果语音备忘录怎么导出
  • 转让应收账款会计分录
  • 采购原材料凭证未到达
  • 业务招待费超出部分纳税调增分录
  • php 替换函数
  • 填报的资产总额在季初和季末存在差异是什么意思
  • 深度学习分析NASA电池数据(1 数据读取)
  • sftp 加密算法
  • java操作mongodb数据库
  • 过路费一定是要公司的车辆吗
  • 社保代扣代缴的规定
  • sqlserver阻止保存要求重新
  • 股权转让给个人和公司的区别
  • 挂靠的项目如何做账?
  • 房地产企业取得土地的契税如何记账
  • 进账税发票未认账怎么办
  • 跨年度发票能否税前扣除
  • 工程施工怎么做账
  • 政府补助计入资本公积吗
  • 多年没有做账该怎么说
  • 质量问题举例
  • 查出以前年度的虚开发票,如何补税
  • 应付账款一直挂着,怎么消掉
  • 小规模纳税人开具的农产品普通发票
  • 非公司员工可以发提成吗
  • sql server语句查询
  • mysql数据库备份方法
  • 如何关闭windows程序
  • Win10系统任务栏一直转圈
  • xp系统浏览器收藏夹文件位置
  • 关于要不要关闭Vista中的IPv6功能的问题
  • linux中vim命令详解
  • ubuntu 18.04怎么用
  • xp系统怎么取消密码怎么设置
  • linux shell !
  • win7怎么设置最佳性能
  • 在Linux系统中安装MySQL
  • windows alt r
  • win10 20h2 微软账户
  • win10恢复以前系统
  • http://www.2cto.com/kf/201402/280576.html
  • unity3ds
  • 批处理在windows中的典型应用
  • css ul显示为表格
  • 啥叫七个不得
  • 你知道的,是我的兄弟 我要把天赋
  • Unity NGUI Tween的用法
  • 2020宜兴市民中心营业时间
  • 进口增值税如何勾选认证
  • 怎样查询一个企业是不是一般纳税人
  • 电子增值税专用发票和纸质增值税专用发票的区别
  • 无锡国税电子发票怎么开
  • 税务局怎么知道房屋出租
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设