星期一, 10月 06, 2014

手動更新Bash

因為Bash 漏洞連環爆:第二波修補還未完,第三波漏洞又來襲 (我發現又有第4個patch出來), 搞到不少套件的更新都還來不及出,所以我只好從source code手動更新。
  1. 看一下bash的版本,從mirror site下載原始碼,自動給 http://ftp.yzu.edu.tw/gnu/bash/ 。我用的是 Bash 4.3,所以下載 bash-4.3.tar.gz 。再解開
     # tar xzf bash-4.3.tar.gz
  2. 參考這篇下載 bash-multipatch.sh ,再手動修改自己的需求。舉例來說,我用的是bash 4.3,所以修改它。
    #cd bash-4.3
    #wget --no-check-certificate https://gist.githubusercontent.com/stevejenkins/3d64d3543060c1bcac92/raw/1ab592f5c8b584e9a0debf8e2ccbcac50cbf6e73/bash-multipatch.sh
    #vi bash-multipatch.sh
    修改為
    version="4.3"
    nodotversion="43"
    lastpatch="30" #請自己看一下patch number
    #sh ./bash-multipatch.sh
    跑一下就結束,若出現奇怪的訊息表示版號改錯
  3. 開始編譯
    #./configure
    #make
    #ls -l bash
    #./bash --version
    應該會看到 GNU bash, version 4.3.30(1)-release (i686-pc-linux-gnu)
  4. 接下來要蓋掉原本的bash,以我手上的Linux為例:
    #cp -f bash /bin/bash
為了避免有記憶體內的bash殘留,應該要kill -1 重起那些process,不知道怎麼做的朋友就重開機吧!

Update: 才貼完隔天又出patch 30,所以更新為 Bash 4.3.30

1 則留言:

subineru 提到...

我好像從大學開始偶爾會來看您的網誌,
但是都沒有留言...XD
感謝大大的分享!!!