主頁(yè) > 知識(shí)庫(kù) > 什么是bashMAC OS手動(dòng)升級(jí)Bash的方法

什么是bashMAC OS手動(dòng)升級(jí)Bash的方法

熱門標(biāo)簽:江西外呼電銷機(jī)器人 地圖標(biāo)注地理位置 高德地圖標(biāo)注教程電腦店 百度地圖標(biāo)注能不能保存 烏魯木齊外呼電銷機(jī)器人 海城代理外呼系統(tǒng) 地圖標(biāo)注方向 南寧人工外呼系統(tǒng)公司 高德地圖標(biāo)注位置多久能生效

  Bash是什么東東?很多用戶們大概還不是很清楚吧,其實(shí)bash就是一個(gè)應(yīng)用于大多數(shù)基于Linux或Unix操作系統(tǒng)的命令行程序,其中也包括Mac OS。那么該怎么升級(jí)Mac OS上的bash呢?現(xiàn)在小編就教大家一種手動(dòng)升級(jí)的方法。

  什么是bash?

  bash是應(yīng)用于大多數(shù)基于Linux或Unix操作系統(tǒng)的命令行程序,其中包括有Mac OS。如果你的操作系統(tǒng)的默認(rèn)命令行shell是bash的話,它就可能被網(wǎng)絡(luò)上遠(yuǎn)端的黑客用于攻擊你的電腦。通過一個(gè)小小的腳本黑客便可以在你的電腦上加載程序或者更改特性,這些操作既不需要任何密碼,也不需要了解任何你所知道的東西。他們可以使用你的文件,獲取你的私密信息,刪除數(shù)據(jù),運(yùn)行程序等等。

  危險(xiǎn)性測(cè)試第一步:

  打開終端窗口,在shell中鍵入以下命令行,緊接著輸入回車。終端可以在你電腦的應(yīng)用文件夾的Utilities中可找到,你也可以使用快速搜索找到它。

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

  好結(jié)果是這樣的

  如果你的電腦不存在被Shellshock漏洞威脅的隱患,那么終端的輸出結(jié)果應(yīng)該和下面的這一段差不多:

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

  糟糕的結(jié)果

  如果你的電腦存在被威脅的可能,那你看到的結(jié)果將會(huì)是下面這樣:

  vulnerable this a test

  危險(xiǎn)性測(cè)試第二步:

  如果你通過了第一個(gè)測(cè)試,那么試試下面的測(cè)試看看你的電腦能否抵御一種在星期四才被發(fā)現(xiàn)的新型攻擊方式;

  env X=’(){(a)=》\&; bash -c “echo date”; cat echo; rm -f echo

  好結(jié)果又是這樣的

  如果你的電腦沒有任何問題,那你應(yīng)該會(huì)看到如下這樣的輸出(不輸出任何與當(dāng)前日期有關(guān)的內(nèi)容):

  datecat: echo: No such file or directory

  壞結(jié)果是這樣的

  如果你的電腦在劫難逃,那你會(huì)看的輸出就是下面這種形式:

  date

  如圖所示(下面輸出的是我測(cè)試的時(shí)間):

  那么現(xiàn)在有更新了嗎

  大多數(shù)Linux發(fā)行版已經(jīng)有了專為Shellshock開發(fā)的補(bǔ)?。m然大多并不完整),不過Mac OS X用戶至今還是沒有收到任何消息,蘋果對(duì)此事只字未提。最近Mavericks的更新10.9.5版本也沒有對(duì)Shellshock有任何的修復(fù)。

  如果你感到惶恐不安,這里倒是有一個(gè)手動(dòng)更新的方法讓你機(jī)器上的GNU bash升級(jí)到更為安全的那個(gè)版本,在這里要感謝StackExchange的用戶提供了有關(guān)方法。

  在你的Mac電腦上打開終端窗口,輸入以下命令來查看你已經(jīng)裝上的shell版本(記得最后敲回車)。

  bash --version

  如果你的GNU bash版本號(hào)為3.2.51(1)-release, 那你需要升級(jí)到3.2版本的最新版3.2.53,如果你已經(jīng)照著這篇教程升級(jí)到過3.2.52(1)-release,那你需要照著下面的做完以確保更新到最新版本使你的電腦得到完全的保護(hù)。

  bash除此外還有其它更新的版本,不過Mac OS只支持3.2分支。如果你是Linux用戶,你想要確保下載到與你當(dāng)前使用的bash版本相匹配的補(bǔ)丁。那你可以在這里找到各種主要版本的最近更新,包括3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 和4.3。

  你可以根據(jù)以下教程手動(dòng)編譯bash的最新版本(3.2.53),但是首先你需要在你的電腦上安裝有一個(gè)蘋果的Xcode工具。如果你沒有安裝過這個(gè)工具,那你需要照著下面的準(zhǔn)備工作章節(jié)做下去。

  如果你不想升級(jí)bash,這里有個(gè)由紅帽提供的解決方案,不過它還并沒有通過完整的測(cè)試,因此我并不推薦這個(gè)。

  準(zhǔn)備工作

  你需要確保你已經(jīng)裝上了Xcode,并同意了蘋果的條款,在老一些的Mac上,你還要確保你裝上了命令行工具。

  你也可以在Mac App Store上下載到免費(fèi)的Xcode。

  如果你的Mac OS X版本太老而不能在Mac App Store上下載到可用的Xcode,你可以使用你的Apple ID登錄開發(fā)者中心去搜索一個(gè)合適的版本并下載。如果你是Mac OS10.7或者10.8用戶,那么請(qǐng)?jiān)陂_發(fā)者下載頁(yè)面的左邊的搜索框里搜索Xcode 4.6.3.

  在你裝了Xcode之后,在你的應(yīng)用文件夾內(nèi)找到并運(yùn)行它,之后同意相關(guān)條款。最開始加載的時(shí)候可能會(huì)花費(fèi)一些時(shí)間。之后你需要確認(rèn)是否有可用而完整的命令行工具,做法如下:

  打開Xcode,在頂部的菜單欄里打開菜單。

  點(diǎn)擊選項(xiàng)。

  點(diǎn)擊下載標(biāo)簽。

  在下載列表里面找到命令行工具之后點(diǎn)擊下載。

  提示:如果你沒有看到命令行工具選項(xiàng)那就證明你已經(jīng)裝上了。

  做完之后,你就為系統(tǒng)補(bǔ)丁做好了所有準(zhǔn)備工作了。 

  第一步:下載并編譯補(bǔ)丁

  當(dāng)你確定裝上了Xcode,再次打開終端命令行并輸入一下命令,然后回車。每一行是一個(gè)命令,因此一定要整行復(fù)制。

  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

  進(jìn)程會(huì)跑上一段時(shí)間,你會(huì)看到在終端里一大串輸出,那是因?yàn)閄code正在你的電腦上編譯新的bash。等它運(yùn)行完畢,輸出“BUILD SUCCEEDED”之后你會(huì)看到一個(gè)新的終端窗口。

  第二步:下載編譯并建造第二個(gè)補(bǔ)丁

  這一步添加于太平洋夏令時(shí)2014.9.26 3:00pm,該補(bǔ)丁主要針對(duì)于新的攻擊方式。如果想了解更多請(qǐng)看文章開頭的更新說明。

  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

  再一次,你會(huì)在完成的時(shí)候看到“BUILD SUCCEEDED”。

  第三步:備份你當(dāng)前版本(建議)

  為避免發(fā)生某些錯(cuò)誤,備份你當(dāng)前使用的bash版本是個(gè)不錯(cuò)的選擇,你可以在終端輸入以下兩行命令。

  注意在這一步你很可能被提示需要輸入一個(gè)密碼,這個(gè)密碼就是你用于登錄Mac的那個(gè)密碼。當(dāng)你敲擊的時(shí)候并不會(huì)在終端看到回顯,如果你的密碼過于復(fù)雜的話在提示密碼錯(cuò)誤的情況下你可以試試多輸入幾次。

  sudo cp /bin/bash /bin/bash.oldsudo cp /bin/sh /bin/sh.old

  你不會(huì)看到任何確認(rèn)信息,但是它已經(jīng)備份完了,如果在第五步之后發(fā)生了錯(cuò)誤的話。你還可以用復(fù)制命令找回你以前的老版本bash,將“.old”復(fù)制為原始文件(即沒有“.old”部分)。 

  第四步:確認(rèn)你新建的版本信息

  在終端里輸入以下命令以確認(rèn)你在電腦上新建的bash是最新版本:

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

  輸出的文本應(yīng)該是bash版本為3.2.53(1)-release你才可以確認(rèn)你編譯了正確的版本。

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

  全部做完之后。你只需復(fù)制你新版的bash覆蓋掉老版的bash,使用以下命令完成:

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

  現(xiàn)在,再來測(cè)試一下看看電腦是否還是會(huì)輸出那個(gè)好結(jié)果:

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

  然后來進(jìn)行第二測(cè)試:

  env X=’(){(a)=》\&; bash -c “echo date”; cat echo; rm -f echo

  如果日期依舊顯示,那么檢查一下你的home文件夾下是否有一個(gè)名為echo的文件在你測(cè)試的時(shí)候被創(chuàng)建。如果是的,那么刪除它再試一次。如果這樣還是依舊輸出日期,那么很可能是你遺漏了上面剛剛更新的第二步。如果你認(rèn)為你在所有的命令行中沒有任何輸入錯(cuò)誤,你也可以刪掉你的bash-fix文件夾之后從第一步開始重來。如果沒有什么問題也請(qǐng)刪除bash-fix文件夾——因?yàn)槟侵皇莻€(gè)臨時(shí)目錄而已。

  以上就是手動(dòng)升級(jí)你Mac OS中的bash的操作方法了,有需要升級(jí)bash的用戶,可以參考這種方法,對(duì)自己的bash進(jìn)行升級(jí)。

標(biāo)簽:辛集 遵義 大連 龍巖 周口 阿拉善盟 六安 承德

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《什么是bashMAC OS手動(dòng)升級(jí)Bash的方法》,本文關(guān)鍵詞  什么,是,bashMAC,手動(dòng),升級(jí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《什么是bashMAC OS手動(dòng)升級(jí)Bash的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于什么是bashMAC OS手動(dòng)升級(jí)Bash的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章