位置: 编程技术 - 正文

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

  • 营业执照是怎么样子的
  • 不确认销售收入结转销售成本
  • 领发票凭证做什么用
  • 进口消费税应该记到什么科目
  • 学校食堂支出
  • 增值税计入当期损益吗?
  • 住宿发票要附清单吗
  • 采购是进项还是销项
  • 出口货物保险免税
  • 房屋租赁费属于什么会计分录
  • 跨年度销售退回所得税
  • 实收资本未到位可以注销吗?
  • 在建工程的利息支出
  • 对公账户100万交多少税收
  • 税务未抄报
  • 建材公司将自产产品卖出
  • 海外仓储的税务风险你都清楚吗?
  • 红冲发票显示发票状态不正常
  • 报销差旅费抵扣进项税分录
  • 企业自然人电子税务局怎么申报
  • 三星笔记app功能介绍
  • 查补以前年度企业所得税的申报处理
  • 核定征收怎么申报个人经营所得
  • 如何判定增值税发票真伪
  • 怎样识别?
  • 不动产售后回租如何处理
  • 捐资民办学校可以盈利吗
  • 残疾人保障金工资总额包括年终奖吗
  • 【综述】分子预训练模型综述
  • php ffi
  • yii框架教程
  • push添加对象
  • linux vimdiff命令
  • 购买房屋用于出租属于投资行为吗
  • 财务公司可以开立一般账户吗
  • 工会经费税前扣除是什么意思
  • 人力资源增加什么资金积累
  • 飞机票电子发票能报销吗
  • 个体工商户城市维护建设税
  • 员工出差预借差旅费入的借贷
  • 税务登记程序有哪些
  • 发票遗失有什么影响
  • 购买的固定资产退回账务处理
  • 销货清单要放凭证里吗
  • 发放工资代扣个人所得税的记账凭证怎么填
  • 破产的产业要退回资金吗?
  • 已经认证尚未抵扣的发票
  • 怎样备份mysql数据库
  • 金税四期的主要功能
  • 什么是现金流量的概念?
  • 出库成本会计分录
  • 购买仓库计入什么科目
  • 房租收入如何缴纳增值税
  • 利润太高,如何调产品收发存
  • 转让价格名词解释
  • 商业地产会计账务怎么做
  • 年平均资金占用额是动态平均数吗
  • 营改增后建筑业增值税税率
  • 工程结算的会计分录怎么做
  • 股东现金存入公司账户,该如何做账?
  • 企业外购的固定资产应该怎样进行会计核算
  • mysql连接时间长怎么优化
  • windows xp sp4 下载 windows xp sp4补丁包(非官方)
  • freebsd怎么安装软件
  • win8开机启动
  • win7系统c盘占用空间大
  • 如何搭建node服务器
  • android调用相机闪退
  • vue缓存数据
  • linux怎么使用
  • 尽有可能的拼音
  • ukey开发票系统怎么升级?
  • 哈尔滨国税局待遇怎么样
  • 江西省税务局发票查询平台官网
  • 贷款利息扣款日未足额缴纳
  • 发货确认收入还是以开票确认收入
  • 技术服务收入确认方法
  • 机票验真查询系统
  • 专票一个单位一张可以吗
  • 车辆购置税交了怎么查询不到
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设