位置: 编程技术 - 正文

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

  • 增值税率和征收率
  • 个体工商户工商年报资金数额填啥
  • 零售价是含税价还是不含税价
  • 什么是一般业务
  • 土地使用税的纳税时间
  • 上年城市维护建设税退税怎么记账
  • 进项税额转出怎么算
  • 权益筹资额计算公式
  • 固定资产更换零部件的入账价值
  • 单位代缴个人所得税流程
  • 关税的记税依据
  • 公司拓展训练入什么会计科目核算做分录?
  • 开办费如何做纳税调增
  • 河道工程修建维护管理费何时开始停征?
  • 从外面买回来的菜怎么消毒
  • 折扣零售商是什么意思
  • 公司欠增值税如何补交?
  • 土地储备机构也称为什么
  • 工资扣除水电费扣个税
  • 含税和不含税哪个对卖方有利
  • 不同税额怎么抵扣
  • 拒绝税务检查的情形
  • 异地劳务公司所在地怎么交税
  • 出口退税远程申报
  • 水利建设基金的计税依据及税率
  • 即征即退收入是否计入所得税
  • 通用机打发票能报销不
  • 工商年报纳税总额是应缴还是实缴
  • 软件服务费是什么
  • 没进项发票要交多少税
  • 研发费收入属于什么收入
  • linuxnl
  • 视同销售有哪些?
  • msworks.exe - msworks是什么进程 有什么用
  • 怎么做好零售
  • 销售费用税前扣除吗
  • 什么是资产负债率,如何计算
  • oauth认证流程
  • bootstrap步骤
  • 网络工程师笔记大全
  • php数组拼接成字符串
  • uniapp面试题必问的坑
  • 可予税前扣除的合理部分
  • 溢价购买子公司账务处理
  • python怎么将整数转化为字符串
  • 其他应付款包括应付股利和应付利息吗
  • 公司转让债权人怎么办
  • 一般股份支付的确认计量及帐务处理怎么做?
  • 帝国cms如何搭建的
  • 网络编程知识
  • 受托代销商品的成本结转
  • 政府会计资产处置费用科目
  • 税收返还要交税费吗
  • 福利费可以直接入管理费用吗
  • 从政府取得土地使用权缴增值税吗
  • 旅游业小规模纳税人税率是多少
  • 会计账簿的设计原则有哪些
  • bios设置或coms设置完整的说法
  • 播放windows xp
  • groove音乐怎么添加本地音乐
  • 利用图片密码登录微信
  • win10不能玩qq堂没反应
  • win10自带终端
  • javascript延迟执行
  • jQuery.parseHTML() 函数详解
  • Android HandlerThread 实例
  • linux哪些方法可以查看命令的详细信息
  • shell中大括号
  • unity移动游戏开发
  • angular.js
  • java项目的命名规则
  • Android之ContentProvider
  • 基于jQuery和Bootstrap的设计报告的参考文献
  • js延时加载方式
  • 1.6排量算大吗
  • 其他收入工会经费必须申报吗
  • 江苏房产税如何计算公式
  • 零申报的企业残保金怎么申报
  • 财税专业全称叫什么
  • 省银保监局长是什么级别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设