位置: 编程技术 - 正文

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

  • 工程项目需要交5000万保证金合理吗
  • 资金账户托管协议
  • 不动产销售额怎么填
  • 小规模季度不超过30万元免税会计分录
  • 银行代扣的社保怎么查询
  • 建筑施工企业存货是未结转的成本对吗
  • 发生非正常损失的购进货物不准予抵扣的增值税
  • 记账凭证的具体审计目标
  • 财务部门使用固定资产的折旧计入管理费用
  • 员工报销增值税
  • 发票已认证还能作废吗2020
  • 应收账款对应的科目有哪些
  • 商业承兑背书后退回怎么办
  • 房屋租赁合同印花税计税依据
  • 非正常损失允许税前扣除吗
  • 货物已经入库,发票没有收到记账
  • 房地产企业建造的商品楼属于存货对吗
  • 进项票异常如何自查
  • 关于进项税额转出的规定
  • 矿产资源税是多少
  • 供暖税收分类编码是多少
  • 税款流失是什么意思
  • 开专票需要哪些东西
  • 一般纳税人普通发票要交增值税吗
  • 建安企业外地项目预缴增值税
  • 以前年度损益调整会计分录
  • 餐饮个体户税务登记需要什么资料
  • 软件企业收到即征即退分录
  • 拆迁安置房如何更名
  • 企业合并中或有负债确认后期调整的项目
  • 电子商务公司的简介
  • scsiaccess.exe - scsiaccess是什么进程 有什么用
  • 补充协议是否缴纳印花税
  • PHP:pg_set_error_verbosity()的用法_PostgreSQL函数
  • cpu的保养有哪些
  • 工商年检需准备什么资料
  • 微软商店 低价区
  • 工程项目会计怎么样
  • 无形资产摊销的会计及账务处理
  • php图形用户界面
  • 制造费用属于期间费用期末一定无余额吗
  • 挪威罗弗敦岛
  • php数组函数题目
  • php 查找数组元素
  • thinkphp curl
  • webpack插件执行顺序
  • vscode前端必备扩展
  • ChatGPT的了解与初体验
  • 商业企业退货与退款区别
  • 公允价值变动收益借方是增加还是减少
  • 个人所得税要缴纳一万多怎么办
  • 织梦建站详细教程
  • 帝国cms获取当日发布的url链接
  • php用户评论
  • 中间业务收入怎么入账
  • 印花税都有什么类目
  • 三险一金的专项扣除标准
  • 代开发票流程该是什么?
  • 网站维护费用
  • 信息技术服务费的税率是多少
  • 失控发票要转出成本吗
  • 个人所得税代扣代缴手续费
  • 一次性付清的优缺点
  • sqlserver数据库和mysql区别
  • win8.1配置要求
  • wupdated.exe - wupdated是什么进程
  • win7与xp双系统设置
  • java中遍历数组的方法
  • 安卓开发
  • Node.js微信公众号开发
  • 编写shell脚本,批量建立用户
  • jquery ajax双击div可直接修改div中的内容
  • python lambda的用法
  • 江苏城乡医疗保险网上缴费2024年
  • 北京市税务总局官网
  • 应税和非应税是什么意思
  • 城镇土地使用税的计算公式
  • 什么叫做免抵税额
  • 城镇土地使用税税率
  • 汽车燃油税每年要交吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设