位置: 编程技术 - 正文

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

  • 交车辆购置税会计账务处理
  • 固定资产一次性扣除账务处理
  • 季度三十万,是不含税额吗
  • 固定资产投资转化为gdp比例
  • 退货的增值税专用发票
  • 税务评估补税如何入账处理合适?
  • 收到总公司投资款怎么做账务处理
  • 自营工程领用原材料
  • 现金存款账户
  • 从农民手中购进农产品进项税
  • 代扣工资申请怎么写
  • 企业收到经营外的发票如何做账
  • 小规模纳税人可以开9%专票吗
  • 出口退税的城建税和教育费附加怎么算
  • 客户不结款怎么办,出结款通知单
  • 停车费属于不动产租赁服务税率
  • 在建工程的折旧费计入什么科目
  • 职业培训和职业技能培训的区别
  • 建筑工程预收款开票会计分录
  • 汇算清缴已退税的还可以作废吗
  • 事业单位财政拨款是什么意思
  • 微软输入法打不出汉字只有拼音
  • 财产清查的方法和财产清查结果的会计处理
  • 新装的电脑开机慢是什么原因
  • system 命令
  • php二维数组遍历
  • php小程序开发完整教程
  • 修改apache的http服务端口为8080
  • 股权转让合同怎么解除
  • php fopen ftp文件不存在
  • PHP:pg_transaction_status()的用法_PostgreSQL函数
  • 会计账簿的错账怎么办
  • php实现观察者模式
  • php用于输出的有哪些方式
  • 七个超级实用的手机
  • 城建税教育费附加会计分录
  • php实现快速排序算法
  • php支付宝支付流程原理
  • vue项目中技巧知识点
  • xss攻击解决方案
  • php反射机制实现自动依赖注入
  • 如何防止sql注入 java
  • phpcms添加内容
  • 微擎框架安装教程
  • 金蝶软件怎么查银行科目明细
  • 退回的个税手续费计入什么科目
  • db2udb
  • 支付给租户的装修押金
  • 融资租赁公司的风险资产包括哪些
  • 人工成本的分类是
  • 一般计税方法预交增值税
  • 主营业务成本的借贷方向
  • 非营利组织也被称为?
  • 企业自查发现以什么为主
  • 增值税申报表中期初未缴税额指什么
  • 个人独资企业缴纳社保享受优惠么
  • 无形资产与固定资产一样都会存在实体性贬值
  • 个体工商户免征增值税政策
  • 哪些发票能做公章
  • 交易的价格
  • 年初速动比率怎么算
  • window10安装mysql5.7
  • mysql读写分离实现原理
  • 用OpenBSD 3.8 release自带的FTPD架设FTP服务器
  • win8无法完成更新正在撤销更改怎么办
  • xp系统如何进入桌面
  • vim wqa
  • 如何设置win10系统输入法
  • 双硬盘需要设置主从盘吗
  • Win10 Mobile/PC/HoloLens一周年更新14389曝光
  • linux保存配置文件
  • win10禁止显卡驱动自动安装
  • excel表限制
  • easyui-accordion
  • windows批处理官方教程
  • div +css
  • pycharm打开文件怎么运行
  • 自定义progressbar
  • jquery深拷贝
  • 国税局和税务稽查的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设