位置: 编程技术 - 正文

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

  • 什么公司可以开普票
  • 一般纳税人劳务派遣
  • 废旧物资回收经营范围
  • 公共租赁住房折旧
  • 房地产土地增值税优惠政策
  • 人力资源代缴社保合法吗
  • 摊销费用怎么计提
  • 收到电子承兑汇票的账务处理
  • 地税三方协议是什么意思
  • 工会经费怎么做账务处理
  • 结转固定资产净收益8万元
  • 利息支出的会计科目
  • 理财认购申购
  • 进项税和销项税的分录
  • 其他应付款无法支付的账务处理方法
  • 自来水公司的水压力是多少
  • win7系统还原系统保护关闭
  • linux使用范围
  • 企业补充养老保险
  • macOS 10.13允许任何来源没有了怎么办?macOS 10.13允许任何来源没了开启步骤
  • 其他暂收和应付账款区别
  • 公众号 隐藏文章
  • 进程antimalware service
  • 坏账准备 结转
  • php xml
  • vue修改表格数据
  • Android Studio安装和使用教程(全文图解)
  • 详解Yii2高级版引入bootstrap.js的一个办法
  • php页面跳转方法
  • 一学就会的人是天才吗
  • timedatectl命令用法
  • uniapp支付宝支付开发
  • php framework框架
  • python中max函数的几种用法
  • 判别是否属于劳务报酬
  • 哪些增值税发票不可以抵扣
  • 补开上年发票的税务处理要怎么做?
  • access微软
  • php源码查看
  • 帝国CMS根据不同会员组显示不同内容的方法
  • 换电脑了怎么办
  • 修改账本
  • 中介公司服务范围都有哪些
  • 具体包括以下哪些方面
  • 预收款销售商品如何与业务员对账
  • 以旧换新有发票抵扣吗
  • 公司购买汽车的会计分录
  • 以前年度损益调整结转到本年利润吗
  • 代垫费用开什么发票
  • 自用房地产转换为采用成本模式计量的投资性房地产
  • 公交车经营权转让案例
  • 净资产增加是好还是坏
  • 期初调整分录
  • 三栏明细账本怎样填写
  • 当月计提公积金下月发放怎么做分录
  • 工程结算的会计分录怎么做
  • 出租车票没有发票怎么办
  • 注册公司可以代办吗法人需要到场吗?
  • 固定资产折旧怎么算
  • sql语句分号
  • 微软mission
  • 如何快速让你的钱变多
  • win10老是弹窗广告
  • cs1.6 linux
  • 如何理解python语言
  • cocos2dx schedule
  • node管理工具
  • js单线程多线程
  • express的中间件
  • shell脚本入门详解
  • windows运行bat文件命令
  • linux怎么使用shell脚本
  • php redis incr
  • 创业要看的书
  • unity jsonobject
  • jquery点击跳转页面
  • 稽查局和税务局哪个好发展
  • 山东省省级政务服务区有哪些
  • 政务服务网怎么打印电子资格证书
  • 深圳税务局官方客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设