位置: 编程技术 - 正文

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

  • 进项税额转出的例题
  • 小规模不动产租赁税率5%
  • 在外地设立分公司如何办理
  • 用现金支付需要附哪些单据
  • 申请100万增值税发票资格
  • 小规模纳税人未开票收入如何填申报表
  • 五险一金计提缴纳分录
  • 高新技术企业费用认定
  • 私募基金超募如何购买
  • 货币资金包括应收票据和应收账款吗
  • 在建工程试运行收入和成本怎么处理
  • 增值税进项税金额是含税还是不含税
  • 股东退出资本金收回
  • 当年应收账款无明细科目
  • 企业用于存货的支出
  • 经济法基础企业所得税好难
  • 日用品专用发票可以抵税嘛
  • 劳务派遣服务用简易计税方法吗
  • 建筑服务税率是5
  • 公司非本单位退休人员发放工资
  • 以实物投资的税种有哪些
  • 股权投资损失怎么算出来的
  • 固定资产处理收入计入什么科目
  • 企业个税网上申报时间
  • 鸿蒙怎么开启个性化桌面
  • 建筑公司购买材料需要写备注
  • 累计摊销在资产里怎么算
  • 出口转内销会计账务处理
  • 安装win11一直转圈要多久?
  • php字符串定义
  • 出口企业增值税怎么算
  • 星空下的灯塔作文
  • 小规模纳税人实收资本印花税怎么算
  • 从零开始吧
  • js实现继承属性功能
  • three.js入门指南
  • php5.6漏洞
  • 如何办理出口退税备案
  • react context优化四重奏教程示例
  • c语言strncat函数用法
  • 前端动画库
  • 季度利息收入分录
  • 一般纳税人必须有办公地点吗
  • 发放工资代扣个人所得税的记账凭证怎么填
  • 出票后定期付款的汇票,其提示付款的期限为
  • 火车票丢了还能再取吗
  • 个人劳务报酬的个税
  • 私车公用产生的费用算不算在公务用车运行维护费中
  • 会计中制造费用包括哪些内容
  • 贴现的利息通过什么会计科目核算
  • 交易费用计入何种科目
  • 暂估入库做账
  • 预算收入包括增值税吗
  • 零售行业折扣销售方案
  • 进项税转出的金额是什么
  • 如何操作开具红字发票
  • 工伤事故补助或赔偿标准
  • 财务费用包括哪些费用
  • sql server创建架构
  • sql语句百度百科
  • apache系统服务启动不了
  • windows XP+Fedora 8+solaris 11三系统安装攻略
  • thinkpad预装的office怎么激活
  • win10手机版下载官方中文版
  • 电脑开机时出现红色三角形
  • win8资源管理器在哪
  • win8怎么看windows
  • 苹果Mac系统怎么用光盘安装
  • win8系统开机怎么进入桌面
  • vue router routes
  • jquery validator
  • jquery mobile教程
  • node.js下载安装教程
  • 使用jquery实现的项目
  • python里的lambda怎么用
  • 国家税务总局的官网
  • 福建网上税务局app
  • 地税收社保
  • 2020年河南麦收时间
  • 房地产企业所得税确认收入时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设