說明:我是今天才發現這個問題的,據說06年就就已經發現了,我纔在才發現,後知後覺,如果不是遇到了,估計還沒發現,我是個假的程序猿。。。
如果Shell版本較舊的話,建議升級到最新版本的Shell,特別是企業用戶。
因爲近年老版本的的bash被暴存在嚴重的安全漏洞。
例如:bash軟件曾經爆出了嚴重漏洞(破殼漏洞),憑藉此漏洞,攻擊者可能會接管計算機的整個操作系統,得以訪問各種系統內的機密信息,並對系統進行更改。任何人的計算機系統,如果使用了bash軟件,都需要立即打上補丁。
檢查系統是否存在漏洞的方法:
[root@localhost ~]# env x='() { :; }; echo be careful' bash -c "This is a test"
This is a test.
如果是上面這樣的,說明沒有問題。不需要升級。
[root@localhost ~]# env x='() { :; }; echo be careful' bash -c "This is a test"
be careful
This is a test
如果是上面這樣的,多了 be careful ,則說明存在漏洞,需要升級bash。
[root@localhost ~]# yum -y update bash # 使用yun來升級bash
[root@localhost ~]# rpm -qa bash # 查看最新的bash版本
bash-4.2.46-33.el7.x86_64
CentOS 下的bash,需要重啓服務器。
Ubuntu 下載補丁,就好。