MAC OS手动升级Bash的方法

2016-02-20 11:24 8 1 收藏

今天图老师小编要跟大家分享MAC OS手动升级Bash的方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 苹果Mac教程 】

Bash是什么东东?很多用户们大概还不是很清楚吧,其实bash就是一个应用于大多数基于Linux或Unix操作系统的命令行程序,其中也包括Mac OS。那么该怎么升级Mac OS上的bash呢?现在图老师小编就教大家一种手动升级的方法。

什么是bash?

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

危险性测试第一步:

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

env x=‘() { :;}; echo vulnerable’ bash -c echo this is a test

好结果是这样的

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

bash: warning: x: ignoring function definition attemptbash: error importing function definition for `x‘this is a test

糟糕的结果

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

vulnerable this a test

 MAC OS手动升级Bash的方法

危险性测试第二步:

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

env X=’(){(a)=》‘ bash -c echo date; cat echo; rm -f echo

好结果又是这样的

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

datecat: echo: No such file or directory

坏结果是这样的

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

date

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

 MAC OS手动升级Bash的方法

那么现在有更新了吗

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

在你的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,这里有个由红帽提供的解决方案,不过它还并没有通过完整的测试,因此我并不推荐这个。

准备工作

你需要确保你已经装上了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,再次打开终端命令行并输入一下命令,然后回车。每一行是一个命令,因此一定要整行复制。

mkdir bash-fixcd bash-fixcurl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -cd bash-92/bash-3.2curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0cd 。.xcodebuild

 MAC OS手动升级Bash的方法

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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

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

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

mv build/bash.build/Release/bash.build/DerivedSources/y.tab.* bash-3.2/cd bash-3.2curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0cd 。.xcodebuild

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

 MAC OS手动升级Bash的方法

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

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

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

sudo cp /bin/bash /bin/bash.oldsudo cp /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,使用以下命令完成:

sudo cp build/Release/bash /binsudo cp build/Release/sh /bin

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

env x=’() { :;}; echo vulnerable‘ bash -c echo this is a test

然后来进行第二测试:

env X=’(){(a)=》‘ bash -c echo date; cat echo; rm -f echo

 MAC OS手动升级Bash的方法

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

以上就是手动升级你Mac OS中的bash的操作方法了,有需要升级bash的用户,可以参考这种方法,对自己的bash进行升级。

来源:http://www.tulaoshi.com/n/20160220/1645705.html

延伸阅读
标签: 电脑入门
在日常工作中,我们经常要使用的不同的文档,同时也要给其中的一些重要的文档加密,但是在我们的使用过程中,我们会发现给Word文档加密相对来说是比较容易的,但是有许多文档都是PDF格式的,比较难以加密。那么我们要如何对PDF文档进行加密呢?现在就让图老师小编和大家一起来分享下,PDF文档加密的方法吧。 在网上有一种方法是直接用PDFKit来...
标签: 电脑入门
截图是我们在日常工作中很常用的一个操作,不过有时候,我们并不需要马上截图而是需要过一段时间再截,那么怎么才能让MAC延时或定时截图呢?这个问题就让系统之家帮你解决吧。另外,如果你忘记了MAC OS X该怎么截图,那就复习下《MAC OS X五大屏幕截图功能》吧。 定时截图的方法: 打开终端(应用程序-》实用工具),输入以下命令: sc...
标签: 电脑入门
许多用户都已经升级了MAC OS X系统,不过对于这个新的系统,我们要想要优化一下,提高它的运行速度该怎么做呢?现在就让图老师小编来教大家一些MAC OS X系统优化的方法吧。 优化指南 1、OnyX 虽然OSX本身就非常快,但是使用长时间后会变慢哦。这时候就可以去下载一个软件,叫做OnyX。 把软件放置到应用程序文件夹就可以运行了。他会...
标签: 电脑入门
如果遇到MAC卡了,或者是安装应用之后,我们需要重启MAC,这时应该怎么样才能快速的让MAC重启呢?我想肯定还有一些用户不知道MAC该如何快速重启吧,现在图老师小编就教你们一些小技巧。 重新启动 通常只需重新启动就可以消除问题,重新启动清除计算机的内存。重新启动前,确定已储存所有打开的文件。要按照正确的方法重新启动:打开其它...
标签: 电脑入门
Mac OS X上面安装软件有两种方式: 1.就是直接复制粘贴,这也是最主要的一种方式,一般来说,MAC OS X上的程序会打包成DMG,ISO。双击以后,系统会自动挂上磁盘镜像,并在FINDER中显示。打开以后你经常会看见类似 程序 - APPLICATION这样的一个界面,那只是一个加了背景图片的文件夹,把程序拖到APPLICATION里面就可以了。 当然,还是的,APPL...

经验教程

317

收藏

73
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部