1

私は非標準バージョンの Ubuntu を実行しており、https://news.ycombinator.com/item?id=8364385の指示に従って、ソースからダウンロードして再コンパイルすることにより、シェル ショック バグにパッチを当てようとしました。の後make install、実行するとbash --version4.3.24(2) が表示されます。しかし、バグテストを実行すると:

env var='() { :;}; echo vulnerable' bash -c /bin/true

まだ印刷中vulnerableです。私は何か間違ったことをしていますか?

4

2 に答える 2

1

4.3.24 は 2014 年 8 月のものです。4.3.25 が必要です。

于 2014-09-25T19:26:17.153 に答える
0

bash新しいものを適切な場所にインストールしなかった可能性が最も高いです。または、まったくインストールできなかったこと。

make installroot として実行している場合にのみ機能します。通常、あなたはする必要があります

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
于 2014-09-25T19:38:51.737 に答える