checkrestart: który program musi zostać uruchomiony ponownie po aktualizacji?
Kategoria: FAQ, etykiety: bezpieczeństwo, system
Dodany: 2011-11-15 11:59
(zmodyfikowany: 2011-12-13 13:09)
Przez: azhag
Wyświetleń: 8501
Dzięki pewnym właściwościom systemów uniksowych nie trzeba wyłączać uruchomionego programu, aby go zaktualizować. Choć z jednej strony jest to bardzo korzystna cecha (brak niepotrzebnych przestojów), niesie za sobą również pewne zagrożenie.
Wyobraźmy sobie następującą sytuację: w bibliotece libxyz albo programie abc wykryty zostaje błąd bezpieczenstwa. Deweloperzy biblioteki/programu oraz Debiana zachowują się jak należy publikując i pakietując poprawioną wersję. Również administrator systemu instalując poprawkę prawidłowo wykonuje swoje zadanie — problem rozwiązany, można spać spokojnie.
Ale czy aby na pewno? Otóż niekoniecznie! W systemie może jeszcze działać stara wersja uaktualnionego programu lub być uruchomiona jakaś aplikacja, która ma w pamięci wczytaną jeszcze niezaktualizowaną bibliotekę. Tu z pomocą przychodzi narzędzie checkrestart
z pakietu debian-goodies.
Program checkrestart
potrafi sprawdzić czy w systemie jest uruchomiony proces korzystający ze zaktualizowanych plików. Jeśli tak — wypisuje jakie aplikacje lub demony należy ponownie uruchomić. Przykładowe użycie:
root@laptop ~ # checkrestart
Found 1 processes using old versions of upgraded files
(1 distinct program)
(1 distinct packages)
These processes do not seem to have an associated init script to restart them:
busybox:
15508 /bin/busybox
Narzędzie należy uruchomić z prawami administratora. Więcej informacji na temat jego użycia można znaleźć w podręczniku systemowym checkrestart(1)
.
Uwaga! Jakkolwiek checkrestart
stara się podawać możliwie wiarygodne wyniki, nie zapewnia stuprocentowego bezpieczeństwa. Po szczególnie krytycznych aktualizacjach lepiej schować do kieszeni dumę użytkownika systemu, który nie wymaga restartów, i po prostu uruchomić maszynę ponownie.
(Narzędzie checkrestart
zostało przeportowane również dla Gentoo — dostępne jest w pakiecie app-admin/checkrestart
).