位置: 编程技术 - 正文

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

  • 车辆购置税税收优惠
  • 牵引车和挂车都要购买交强险吗
  • 财政基建拨款如何做分录
  • 金税盘不用了之后要抄报税吗
  • 差旅费津贴需要缴纳个人所得税吗?
  • 发票右上角打印缺数字
  • 发票进项税额抵扣的最晚时间
  • 申请开红字发票,原蓝字发票要退回来吗
  • 小型微利企业认定标准2023年
  • 建筑企业发生分包业务如何确认收入
  • 短期借款利息都需要测算什么
  • 购进货物建不动产进项税额抵扣
  • 按利润总额的25%计算应交所得税
  • 企业购买商品发生的商业 应该计入财务费用吗
  • 企业购入物资合同模板
  • 库存半成品属于什么会计科目
  • 一般纳税人收小规模普票可以算成本吗
  • 固定资产原值是含税还是不含税
  • 工会开票是否需要开户银行
  • 无法支付的其他应付款可以用现金核销吗
  • 小企业递延收益计算公式
  • 融资性售后回租承租方为什么不交税
  • 鸿蒙系统桌面布局图片怎么设置
  • 补交以前年度的城建税会计分录
  • .inc是什么文件
  • 票据贴现融资有哪些潜在的风险
  • 高校教材pdf
  • PHP:imagedestroy()的用法_GD库图像处理函数
  • 加拿大西北部的首都
  • 委托加工应税消费品以委托人为消费税的纳税义务人
  • php自动载入自定义函数文件
  • 企业法人歇业后诉讼主体确认
  • 销售货物产生的运费怎么开票
  • 联邦学习(FL)+差分隐私(DP)
  • 我的第一次作文400字左右
  • chrome os安装到u盘
  • c++图像二值化
  • 大前端技术架构
  • In Java, how do I read/convert an InputStream to a String? Stack Overflow
  • 年金现值系数和年金终值系数的公式
  • 拖欠工程款利息的司法解释
  • 员工宿舍的物业费要交个税吗
  • 免税增值税纳税申报表怎么填
  • 银行承兑到期后几天内有效
  • 如何用织梦在本地搭建网站
  • 销售产品的运输费会计分录
  • 业务招待费的进项票可以抵扣吗
  • 发票系统怎么用
  • 决算清理期和库款报解整理期
  • 公司借款给个人的税务问题
  • 拼多多里的多多付款安全吗
  • 福利费列支范围及标准
  • 净值怎么算?
  • 税控系统专用设备抵减增值税账务处理
  • 固定资产的进项税额可以一次性抵扣吗
  • 库存商品太多
  • 购买金税盘的分录
  • 什么是来料加工和进料加工
  • 原始凭证的基本内容
  • centos rpm命令
  • windows10 rs2
  • 如何解决心脏供血不足
  • Radio.exe - Radio是什么进程 有什么用
  • win10文件资源
  • windows xp windows
  • linux a
  • cocos2dx安装win7教程视频
  • Android:wpa_supplicant决定选择哪种驱动
  • Ubuntu修改用户名
  • js 函数写法
  • unity获取物体位置代码
  • javascript indexOf函数使用说明
  • cocos2dx 4.0
  • javascript异常
  • js点击按钮实现登陆网页
  • jquery动态添加html代码
  • 基层税务工作难点重点热点
  • 福建税务局网上办税
  • 城市维护建设税怎么算
  • 湖北退役士兵退伍费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设