位置: 编程技术 - 正文

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年税收政策
  • 建筑业增值税税负预警
  • 中国电信的通信网络
  • 劳务报酬自行申报时间
  • 股东股权比例怎么分配
  • 营改增的增值税
  • 已经报销的发票还会查吗
  • 餐饮加盟公司怎么经营
  • 一般纳税人税率2023
  • 营改增后建筑企业财务核算
  • 应纳税所得额和应纳税额的区别
  • 公司付给个人的借款利息怎么做账
  • 代扣代缴增值税可以抵扣进项税?
  • 小规模可以不报增值税吗
  • 公司固定资产一般谁负责
  • 管理会计完全成本法和变动成本法例题
  • win 11 无法安装
  • 英雄联盟登录失败7502013
  • 单位出纳的业务有哪些
  • 广告公司的成本是什么
  • uniapp关闭当前页面
  • php add
  • 交易性金融资产的交易费用计入哪里
  • uniapp vuecli
  • 支持h5浏览器
  • 加拿大克卢恩国家公园
  • 发票是否可以作为收款依据
  • 短期借款利息计算
  • 最贵的域名是什么名字
  • torch.save用法
  • 二手房买卖要交契税吗
  • html用户注册界面
  • 出资入股是什么意思
  • f12过滤请求
  • audo命令
  • 集合框架有何好处
  • 织梦怎么样
  • 织梦cms怎么样
  • 异地预交个人所得税
  • 以前年度损益调整会计分录
  • 农村合作社怎么办理流程
  • 用友t3采购订单怎么录入
  • 贷款利息进项税为什么不能抵扣
  • 增值税留抵税额借贷方向
  • 产权转移数据印花税子目
  • 税控维护费减免税款
  • 发票遗失复印件可以入账吗
  • 客户退货不退赠品怎么办
  • 农产品加计扣除1%怎么计算和会计分录
  • 成本价和原价一样吗
  • 存货科目包括哪几类
  • 使用sql查询
  • Sql Server 2012 转换函数的比较(Cast、Convert和Parse)
  • win8.1安装失败
  • solaris命令
  • windows7休眠唤醒设置
  • solaris配置ip地址
  • ubuntu卸载dpkg安装的软件
  • mac 设置
  • u盘安装linux系统遇到的问题
  • imac触发角
  • spoolsrv32.exe - spoolsrv32进程是什么文件 有何作用
  • window7电源设置
  • Linux如何开启防火墙
  • windows10右键菜单
  • win7系统网速太慢怎么办
  • win10预览版和正式版区别
  • js的事件绑定
  • 环境篇作文
  • vue eventhub
  • Node.js中的construct
  • vue router routes
  • node.js [superAgent] 请求使用示例
  • vue实现标签页效果
  • 置顶高手
  • 河南商丘医疗保险在微信上怎么交
  • 电子税务局怎么添加银行账户信息
  • 贵州税务开票系统登录
  • 什么是美国注册商标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设