我正在运行非标准版本的Ubuntu,我尝试按照https://news.ycombinator.com/item?id=8364385的说明从源代码下载并重新编译来修补shell shock bug。在make install
之后,运行bash --version
会显示4.3.24(2)。但是在运行错误测试时:
env var='() { :;}; echo vulnerable' bash -c /bin/true
仍在打印vulnerable
。我做错了吗?
答案 0 :(得分:1)
4.3.24自2014年8月起;你需要4.3.25。
答案 1 :(得分:0)
您很可能没有在正确的位置安装新的bash
。或者你根本没有设法安装它。
make install
仅在您以root用户身份运行时才有效。通常,你需要做
sudo make install
如果不这样做,您会看到一条错误消息:
$ make install
***********************************************************
* *
* GNU bash, version 4.3.25(1)-release (x86_64-unknown-linux-gnu)
* *
***********************************************************
mkdir -p -- /usr/local/share/doc/bash
mkdir: cannot create directory ‘/usr/local/share/doc/bash’: Permission denied
make: *** [installdirs] Error 1
表示未安装该软件。 (您只需要重做安装步骤。)
此外,默认情况下,bash构建文件会将新bash安装为/usr/local/bin/bash
,而旧版bash
将继续存在于/usr/bin/bash
中。通过键入以下内容检查正在运行的bash:
which bash