Wyszukiwanie w witrynie

Jak przywrócić usunięte pliki w katalogu /etc w Ubuntu


Bałagan lub omyłkowo usunięte pliki konfiguracyjne w katalogu /etc, ale nie ma kopii zapasowej? Oto jak przywrócić pliki w takim stanie, w jakim zostały pierwotnie zainstalowane.

W Linuksie katalog /etc jest lokalizacją do przechowywania plików konfiguracyjnych dla całego systemu. Podczas instalowania pakietu oprogramowania może on tworzyć i/lub odczytywać pliki konfiguracyjne specyficzne dla oprogramowania w katalogu /etc w celu niestandardowych konfiguracji użytkownika.

Aby zapobiec zastępowaniu niestandardowych konfiguracji użytkownika, ponowna instalacja pakietów oprogramowania domyślnie NIE zastąpi plików w katalogu /etc, nawet jeśli usunąłeś pliki w tym katalogu. Jednak niektóre pakiety będą pytać, czy zachować lub zastąpić stare konfiguracje podczas instalacji.

Jeśli omyłkowo usunąłeś pliki w /etc lub po prostu chcesz przywrócić pliki w tym katalogu do oryginału, ten samouczek może pomóc.

UWAGA: NIE tylko dla Ubuntu, ten samouczek powinien działać we wszystkich systemach opartych na Debianie.

Krok 1: Dowiedz się, który pakiet zawiera plik/pliki

W systemie Linux wiele aplikacji jest wbudowanych w oddzielne pakiety. Podczas instalowania pakietu oprogramowania xxx może on również zainstalować xxx-data, xxx-common lub xxx-plugins itp. jako zależności. Plik, który chcesz przywrócić, może znajdować się w jednym z pakietów.

Opcja 1: użyj polecenia dpkg:

Aby dowiedzieć się, który pakiet zawiera ten plik, otwórz terminal (Ctrl + Alt + T) lub połącz się z serwerem Debian/Ubuntu. Następnie wypróbuj polecenie dpkg -S.

Na przykład wyszukaj pakiet, który zawiera /etc/ssh/ssh_import_id:

dpkg -S /etc/ssh/ssh_import_id

Możesz też wyszukać, który pakiet zawiera pliki w danym folderze (MOŻE wyświetlać wiele pakietów dla jednego folderu).

dpkg -S /etc/ssh

Jeśli nawet nie pamiętasz ścieżki do pliku, po prostu wpisz nazwę pliku. Nawet w przypadku nazwy pliku możesz użyć gwiazdki (*) dla części, której nie pamiętasz.

dpkg -S ssh_imp*

Ostatnie polecenie wyszuka, który pakiet zawiera plik ze ssh_imp na początku jego nazwy.

Wskazówki: alternatywnie możesz użyć polecenia wyszukiwania apt-file do podobnego zadania, chociaż wydaje się, że nie obsługuje ono gwiazdki w wyszukiwanym tekście.

Opcja 2: użyj polecenia ucfq:

Polecenie dpkg -S czasami nie działa, ponieważ pakiety, które przeszukasz, mogą być obsługiwane przez ucf (Update Configuration Files).

W takim przypadku możesz zamiast tego użyć ucfq. Na przykład, wyszukaj pakiet, który zawiera /etc/ssh/sshd_config:

ucfq /etc/ssh/sshd_config

Polecenie musi wprowadzić pełną ścieżkę do pliku, który chcesz przeszukać. Jeśli nie pamiętasz, spróbuj zamiast tego użyć poniższego polecenia, aby (zastąpić smb zgodnie z tym, co chcesz wyszukać):

grep smb /var/lib/ucf/registry

Krok 2: Zainstaluj ponownie pakiet i określ, aby ponownie utworzyć nieistniejące pliki

Po ustaleniu, który pakiet zawiera plik, który chcesz przywrócić, uruchom poniższe polecenie, aby ponownie zainstalować i ponownie wygenerować brakujący plik konfiguracyjny użytkownika:

sudo UCF_FORCE_CONFFMISS=1 apt -o Dpkg::Options::=--force-confmiss install --reinstall openssh-server

W powyższym poleceniu zastąp odpowiednio nazwę pakietu openssh-server.

Tutaj zarówno UCF_FORCE_CONFFMISS=1, jak i -o Dpkg::Options::=--force-confmiss nakazuje ponowne wygenerowanie plików instalacyjnych, jeśli NIE istnieją. Możesz pominąć poprzednią, jeśli pakiet NIE jest obsługiwany przez ucf.

W danych wyjściowych zobaczysz coś takiego jak "Odtwarzanie usuniętego pliku konfiguracyjnego ... z nową wersją, zgodnie z monitem".

Jeśli jest to pakiet .deb lokalnego i chcesz użyć polecenia dpkg do instalacji, uruchom poniższe polecenie, aby zrobić podobne rzeczy:

sudo UCF_FORCE_CONFFMISS=1 dpkg -i --force-confmiss package-name.deb

Zgodnie ze stroną podręcznika ucf dostępne są również opcje dpkg UCF_FORCE_CONFFNEW i --force-confnew, które nakazują zawsze nadpisywać zainstalowany plik docelowy, choć nie wiem dlaczego to NIE działa w moim teście.

przez: ten wątek.

Powiązane artykuły