说明:我是今天才发现这个问题的,据说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 下载补丁,就好。