位置: IT常识 - 正文

什么是bash?如何手动升级你Mac OS上的bash?(bash是什么命令)

发布时间:2023-12-17
什么是bash?相信很多果粉们都不太清楚吧,其实它是应用于大多数基于Linux或Unix操作系统的命令行程序,其中包括有Mac OS,他们可以使用你的文件,获取你的私密信息,删除数据,运行程... 14-09-30

推荐整理分享什么是bash?如何手动升级你Mac OS上的bash?(bash是什么命令),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:bash的功能是什么,bash是啥,什么是bass,bash是啥,bash是啥,什么是bash shell,简述bash,bash是啥,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是bash?相信很多果粉们都不太清楚吧,其实它是应用于大多数基于Linux或Unix操作系统的命令行程序,其中包括有Mac OS,他们可以使用你的文件,获取你的私密信息,删除数据,运行程序等等。那么如何手动升级Mac OS上的bash?下面小编就为详细介绍一下!

心脏滴血(Heartbleed)一波才平,一波又起,这次的漏洞名为Shellshock(最初的官方名叫做CVE-2014-6271),受害者则是搭载了Linux和Mac的电脑。现在它已经在NCAS分级为10的危险评级中成功拿下了危险性为10的评定。虽然现在也有了一些专用于修复漏洞的更新,但是它们依旧不够完善,而你的电脑也仍然处于威胁之中。而这个bug已经像这样存在了20年才为人知晓。

2014.9.26更新说明

一个新补丁主要用于应对新增的攻击方式CVE-2014-7169.

如果你在太平洋夏令时的2014年9月26日下午三点前照着这篇教程做过,那你需要删除掉你的bash-fix文件夹(你可以通过finder在你的user->username目录下找到它),之后再照着下面的教程再做一次(从第一步开始),这样才能确保你的电脑得到完全的修复。如果你从来没有手动更新过,那就不需要删除bash-fix文件夹。

该教程现已经能完全应对现有的攻击,也很可能是你需要部署的最后一次补丁了。

什么是bash

bash是应用于大多数基于Linux或Unix操作系统的命令行程序,其中包括有Mac OS。如果你的操作系统的默认命令行shell是bash的话,它就可能被网络上远端的黑客用于攻击你的电脑。通过一个小小的脚本黑客便可以在你的电脑上加载程序或者更改特性,这些操作既不需要任何密码,也不需要了解任何你所知道的东西。他们可以使用你的文件,获取你的私密信息,删除数据,运行程序等等。

危险性测试第一步:

打开终端窗口,在shell中键入以下命令行,紧接着输入回车。终端可以在你电脑的应用文件夹的Utilities中可找到,你也可以使用快速搜索找到它。

envx='(){:;};echovulnerable'bash-c"echothisisatest"

好结果是这样的

如果你的电脑不存在被Shellshock漏洞威胁的隐患,那么终端的输出结果应该和下面的这一段差不多:

bash:warning:x:ignoringfunctiondefinitionattemptbash:errorimportingfunctiondefinitionfor`x'thisisatest

糟糕的结果

如果你的电脑存在被威胁的可能,那你看到的结果将会是下面这样:

vulnerablethisatest

危险性测试第二步:

如果你通过了第一个测试,那么试试下面的测试看看你的电脑能否抵御一种在星期四才被发现的新型攻击方式;

envX='(){(a)=>\'bash-c"echodate";catecho;rm-fecho

好结果又是这样的

如果你的电脑没有任何问题,那你应该会看到如下这样的输出(不输出任何与当前日期有关的内容):

datecat:echo:Nosuchfileordirectory

坏结果是这样的

如果你的电脑在劫难逃,那你会看的输出就是下面这种形式:

date

如图所示(下面输出的是我测试的时间):

那么现在有更新了吗

大多数Linux发行版已经有了专为Shellshock开发的补丁(虽然大多并不完整),不过Mac OS X用户至今还是没有收到任何消息,苹果对此事只字未提。最近Mavericks的更新10.9.5版本也没有对Shellshock有任何的修复。

如果你感到惶恐不安,这里倒是有一个手动更新的方法让你机器上的GNU bash升级到更为安全的那个版本,在这里要感谢StackExchange的用户提供了有关方法。

在你的Mac电脑上打开终端窗口,输入以下命令来查看你已经装上的shell版本(记得最后敲回车)。

bash--version

如果你的GNU bash版本号为3.2.51(1)-release, 那你需要升级到3.2版本的最新版3.2.53,如果你已经照着这篇教程升级到过3.2.52(1)-release,那你需要照着下面的做完以确保更新到最新版本使你的电脑得到完全的保护。

bash除此外还有其它更新的版本,不过Mac OS只支持3.2分支。如果你是Linux用户,你想要确保下载到与你当前使用的bash版本相匹配的补丁。那你可以在这里找到各种主要版本的最近更新,包括3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 和4.3。

你可以根据以下教程手动编译bash的最新版本(3.2.53),但是首先你需要在你的电脑上安装有一个苹果的Xcode工具。如果你没有安装过这个工具,那你需要照着下面的准备工作章节做下去。

什么是bash?如何手动升级你Mac OS上的bash?(bash是什么命令)

如果你不想升级bash,这里有个由红帽提供的解决方案,不过它还并没有通过完整的测试,因此我并不推荐这个。

准备工作

你需要确保你已经装上了Xcode,并同意了苹果的条款,在老一些的Mac上,你还要确保你装上了命令行工具。

你也可以在Mac App Store上下载到免费的Xcode。

如果你的Mac OS X版本太老而不能在Mac App Store上下载到可用的Xcode,你可以使用你的Apple ID登录开发者中心去搜索一个合适的版本并下载。如果你是Mac OS10.7或者10.8用户,那么请在开发者下载页面的左边的搜索框里搜索Xcode 4.6.3.

在你装了Xcode之后,在你的应用文件夹内找到并运行它,之后同意相关条款。最开始加载的时候可能会花费一些时间。之后你需要确认是否有可用而完整的命令行工具,做法如下:

打开Xcode,在顶部的菜单栏里打开菜单。

点击选项。

点击下载标签。

在下载列表里面找到命令行工具之后点击下载。

提示:如果你没有看到命令行工具选项那就证明你已经装上了。

做完之后,你就为系统补丁做好了所有准备工作了。

第一步:下载并编译补丁

当你确定装上了Xcode,再次打开终端命令行并输入一下命令,然后回车。每一行是一个命令,因此一定要整行复制。

mkdirbash-fixcdbash-fixcurlhttps://opensource.apple.com/tarballs/bash/bash-92.tar.gz|tarzxf-cdbash-92/bash-3.2curlhttps://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052|patch-p0cd..xcodebuild

进程会跑上一段时间,你会看到在终端里一大串输出,那是因为Xcode正在你的电脑上编译新的bash。等它运行完毕,输出“BUILD SUCCEEDED”之后你会看到一个新的终端窗口。

第二步:下载编译并建造第二个补丁

这一步添加于太平洋夏令时2014.9.26 3:00pm,该补丁主要针对于新的攻击方式。如果想了解更多请看文章开头的更新说明。

mvbuild/bash.build/Release/bash.build/DerivedSources/y.tab.*bash-3.2/cdbash-3.2curlhttps://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053|patch-p0cd..xcodebuild

再一次,你会在完成的时候看到“BUILD SUCCEEDED”。

第三步:备份你当前版本(建议)

为避免发生某些错误,备份你当前使用的bash版本是个不错的选择,你可以在终端输入以下两行命令。

注意在这一步你很可能被提示需要输入一个密码,这个密码就是你用于登录Mac的那个密码。当你敲击的时候并不会在终端看到回显,如果你的密码过于复杂的话在提示密码错误的情况下你可以试试多输入几次。

sudocp/bin/bash/bin/bash.oldsudocp/bin/sh/bin/sh.old

你不会看到任何确认信息,但是它已经备份完了,如果在第五步之后发生了错误的话。你还可以用复制命令找回你以前的老版本bash,将“.old”复制为原始文件(即没有".old"部分)。

第四步:确认你新建的版本信息

在终端里输入以下命令以确认你在电脑上新建的bash是最新版本:

build/Release/bash--versionbuild/Release/sh--version

输出的文本应该是bash版本为3.2.53(1)-release你才可以确认你编译了正确的版本。

第五步:使用新版本替换你老版的bash

全部做完之后。你只需复制你新版的bash覆盖掉老版的bash,使用以下命令完成:

sudocpbuild/Release/bash/binsudocpbuild/Release/sh/bin

现在,再来测试一下看看电脑是否还是会输出那个好结果:

envx='(){:;};echovulnerable'bash-c"echothisisatest"

然后来进行第二测试:

envX='(){(a)=>\'bash-c"echodate";catecho;rm-fecho

如果日期依旧显示,那么检查一下你的home文件夹下是否有一个名为echo的文件在你测试的时候被创建。如果是的,那么删除它再试一次。如果这样还是依旧输出日期,那么很可能是你遗漏了上面刚刚更新的第二步。如果你认为你在所有的命令行中没有任何输入错误,你也可以删掉你的bash-fix文件夹之后从第一步开始重来。如果没有什么问题也请删除bash-fix文件夹——因为那只是个临时目录而已。

以上就是如何手动升级你Mac OS上的bash过程,希望对大家有所帮助!

本文链接地址:https://www.jiuchutong.com/zhishi/275923.html 转载请保留说明!

上一篇:Win11安卓子系统 root 详细教程:无需借助 Linux,可运行 Magisk(Win11安卓子系统怎么安装apk)

下一篇:中秋之夜, 上海豫园 (© Zyxeos30/Getty images)(上海中秋活动2021)

  • 淘宝店推广之软文推广怎样做更加有力(淘宝做推广用什么软件)

    淘宝店推广之软文推广怎样做更加有力(淘宝做推广用什么软件)

  • 这两年的营销节奏有点乱(2021年营销活动节点)

    这两年的营销节奏有点乱(2021年营销活动节点)

  • 荣耀play4pro是多大的屏幕(荣耀 play 4 pro (5g))

    荣耀play4pro是多大的屏幕(荣耀 play 4 pro (5g))

  • 苹果拍照要不要开实况

    苹果拍照要不要开实况

  • 别人发微信过来不显示(别人发微信过来不显示怎么设置)

    别人发微信过来不显示(别人发微信过来不显示怎么设置)

  • 苹果x怎么看电池寿命(苹果X怎么看电量百分比)

    苹果x怎么看电池寿命(苹果X怎么看电量百分比)

  • radeon software是什么(radeon software是啥)

    radeon software是什么(radeon software是啥)

  • vivox50上市时间(vivox50 上市)

    vivox50上市时间(vivox50 上市)

  • 手机号码存在不安全情况不能注册qq(手机号码存在不安全情况)

    手机号码存在不安全情况不能注册qq(手机号码存在不安全情况)

  • 快手为什么会无缘无故的扣钱(快手为什么会无缘无故涨粉)

    快手为什么会无缘无故的扣钱(快手为什么会无缘无故涨粉)

  • 抖音视频审核中是什么原因(抖音视频审核中怎么解决)

    抖音视频审核中是什么原因(抖音视频审核中怎么解决)

  • 苹果xr为什么只可以安一张卡(苹果xr为什么只能用一个卡)

    苹果xr为什么只可以安一张卡(苹果xr为什么只能用一个卡)

  • 淘宝换绑支付宝身份不一致(淘宝换绑支付宝条件)

    淘宝换绑支付宝身份不一致(淘宝换绑支付宝条件)

  • 剪映慢动作视频怎么制作(拍好的视频怎么制作慢动作特效)

    剪映慢动作视频怎么制作(拍好的视频怎么制作慢动作特效)

  • 数据线发黄是不是烧了(数据线发黄是不是充电慢)

    数据线发黄是不是烧了(数据线发黄是不是充电慢)

  • 为什么手机看视频不能全屏了(为什么手机看视频会自动暂停)

    为什么手机看视频不能全屏了(为什么手机看视频会自动暂停)

  • qq等级51级是什么图标(qq五十一级是多少)

    qq等级51级是什么图标(qq五十一级是多少)

  • 快手的作品发到抖音上行不(快手的作品发到抖音算搬运吗知乎)

    快手的作品发到抖音上行不(快手的作品发到抖音算搬运吗知乎)

  • qq更新头像自动发动态怎么关掉(qq更新头像自动更换吗)

    qq更新头像自动发动态怎么关掉(qq更新头像自动更换吗)

  • qq情侣空间点不进去(QQ情侣空间点不进去)

    qq情侣空间点不进去(QQ情侣空间点不进去)

  • 苹果11和11pro有什么区别(苹果11和苹果11 pro)

    苹果11和11pro有什么区别(苹果11和苹果11 pro)

  • designedby是0ppo几(designedbyoppo是什么型号的手机)

    designedby是0ppo几(designedbyoppo是什么型号的手机)

  • 微信怎么设置文案置顶(微信怎么设置文字转语音)

    微信怎么设置文案置顶(微信怎么设置文字转语音)

  • oppor17手机关机键在哪里(oppor17手机关机后闹钟还会响吗)

    oppor17手机关机键在哪里(oppor17手机关机后闹钟还会响吗)

  • word文档居左显示怎么办 (word怎么设置左居中)

    word文档居左显示怎么办 (word怎么设置左居中)

  • 怎么把qq个性标签关闭(怎么把qq个性标签关掉)

    怎么把qq个性标签关闭(怎么把qq个性标签关掉)

  • 开源小项目ChatGPT-website已获得100+star,我都干了什么(开源项目排行榜)

    开源小项目ChatGPT-website已获得100+star,我都干了什么(开源项目排行榜)

  • echarts文档解读(echarts api文档)

    echarts文档解读(echarts api文档)

  • 房地产零税率
  • 纳税申报的流程是什么
  • 税号都是数字吗
  • 库存现金冲销
  • 视同销售收入是纳税调整项目吗
  • 税务不受地方管吗
  • 缓交的社保费,包括个人部分
  • 交易性金融资产的交易费用计入哪里
  • 实收资本何时交税
  • 小规模纳税人需要做进项税吗
  • 个税扣除项生效日期
  • 收到固定资产发票抵扣进项税
  • 资产减值损失为正
  • 增值税本期应补退税额为负数怎么处理
  • 进项税已入账未结转
  • 安装过程中材料和工资
  • 公益性捐赠需要缴纳增值税吗
  • 个体经营户如何开电子发票
  • 人力资源顾问公司有什么岗位
  • 进项税额进成本
  • 企业押金怎么管理
  • 查找我的iphone怎么添加设备
  • 资产负债表与现金流量表的关系
  • 二手车买卖如何纳税
  • 苹果手机密码忘记了怎么重置密码
  • json去除某个字段
  • php中的类是什么
  • win11修改版
  • eclipse中创建webgis项目
  • win11dev预览版可以升级正式版吗
  • 未开票收入以后必须开票吗
  • 企业会计日记账保管期限为()年。A5B10C30D35
  • 董事费属于什么费用
  • php权限框架
  • vue方法顺序执行
  • 纳税人辅导期申报流程
  • 承接旅游业务
  • 一般纳税人向小规模纳税人开专票
  • 进价金额核算法例题
  • 企业所得税必须要季度缴纳吗
  • 《linux内核分析》
  • 保险公司的应收账款有哪些
  • 制药企业客户退货流程
  • 银行账户管理的直接责任人是共享中心核算会计
  • 成本核算需要哪些数据
  • 一般纳税人购销合同印花税减免政策
  • 营业收入计入销售收入吗
  • 增值税最高开票限额
  • mysql误删数据
  • 小规模纳税人企业所得税2023
  • 月底如何结转成本
  • 劳务费怎么要的回来
  • 残疾人保障金为负数
  • 在非企业合并形成的长期股权投资中
  • 记账凭证分类
  • 待抵扣进项税额什么意思
  • 计提社保个人部分会计分录
  • 私企会计一般一个月多少钱
  • 产品成本核算有多条原则和要求
  • 如何在sql server表中添加数据表格为什么没有显示
  • Windows自带的游戏怎么删除
  • mac u盘启动盘
  • mmc.exe是什么
  • mac迅雷不限速
  • win7如何设置多个显示器
  • win10预览版好吗
  • cocos2djs
  • unity outline性能
  • Node.js中的全局变量有哪些
  • 批量安装windows7补丁
  • Internet Explorer 8 beta 中文版与IE7共存的解决方法
  • python获取当前路径的方法
  • python利用while循环求1+2+3......+n的和
  • ajax简单实例
  • java语言基于对象
  • js性能优化方法
  • javascript面向对象编程指南第三版
  • 新土地管理法37条解释
  • 消费税的税收优惠有哪些
  • 营销代码是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号