Prowadzimy Debian Etch, Lenny i Squeeze, ponieważ w tym sklepie nigdy nie przeprowadzono aktualizacji; mamy ponad 150 systemów z różnymi wersjami Debiana. W świetle „szoku powłoki” w tym tygodniu zakładam, że muszę zaktualizować bash. Nie znam Debiana, więc się martwię.
Czy mogę po prostu wykonać apt-get install bash
na wszystkich moich systemach Debian i uzyskać odpowiedni pakiet Bash, podczas gdy moje repozytorium jest skierowane na pozycję Squeeze. Jeśli nie, jaki mam inny sposób postępowania?
bash
debian
shellshock
DavidH
źródło
źródło
system shell
w tym systemie? (To znaczy, jaką powłokę otrzymujesz po uruchomieniusystem
wywołania POSIX, czyli / bin / sh). Jeśli / bin / sh to bash, musisz zaktualizować. Jeśli tak nie jest ... Prawdopodobnie wszystko w porządku (ale i tak powinieneś zaktualizować bash)Odpowiedzi:
Masz opcję uaktualnienia bash. Aby to zrobić, użyj następującego
apt-get
polecenia:Następnie po pobraniu aktualizacji uruchamiane są wszystkie dostępne aktualizacje:
Aby uzyskać aktualizacje starszych wersji, na przykład Squeeze, prawdopodobnie będziesz musiał dodać repozytorium Squeeze-LTS do swojej strony sources.list.
Aby dodać to repozytorium, edytuj
/etc/apt/sources.list
i dodaj następujący wiersz na końcu pliku.Aby sprawdzić konkretny system pod kątem luk (lub sprawdzić, czy aktualizacja działa), możesz sprawdzić używane wersje bash i sprawdzić, czy dotyczy to wersji (prawdopodobnie jest) lub czy w Internecie dostępnych jest wiele skryptów testowych powłoki .
EDYCJA 1
Aby dokonać aktualizacji
bash
na Lenny lub Etch, spójrz na odpowiedź Ilyi Sheershoff poniżej, jak skompilowaćbash
ze źródła i ręcznie zaktualizować wersję używaną przezbash
twoje wydanie.EDYCJA 2
Oto przykładowy
sources.list
plik z serwera Squeeze, który pomyślnie zaktualizowałem:źródło
Jeśli
apt-get install
opcja nie działała, musisz ponownie skompilować bash ze źródeł. Przykłady Lenny'ego i Etcha znajdują się w odpowiedzi. Nie mam żadnych maszyn Squeeze, ale łatwo można dowiedzieć się, co robić.Rozwiązanie z TaNNkoST Znalazłem w internecie:
Sprawdź liczbę dostępnych poprawek i zmień liczbę w części „(seq”, jeśli są nowe).
DLA LENNY
DLA ETCH Postępowałem zgodnie z tą samą logiką, ale nie
yacc
zainstalowałem się w systemie, więc musiałem zainstalowaćbison
pakiet. Oto, co wymyśliłem:źródło
make: yacc: Command not found
rozwiązania Lenny i naprawiłem go za pomocąapt-get install bison
.Nie jestem pewien, czy chcesz ufać tym pakietom, ale ktoś zbudował pakiety dla woody (3.0), sarge (3.1), etch (4.0) i lenny (5.0). Są dostępne tutaj:
http://blog.bofh.it/debian/id_451
Uważaj, nie ma repozytorium do instalowania tych pakietów za pośrednictwem
apt-get
. Musisz użyćdpkg
lub utworzyć własne lokalne repozytorium.źródło
Aby zaktualizować Bash na wielu różnych systemach operacyjnych, możesz użyć uniwersalnego skryptu Deshellshock .
źródło