Własność co najmniej jednego z ważnych plików systemowych jest nieprawidłowa. To zła rzecz; jeśli tak się stało z wieloma plikami systemowymi (być może w pewnym momencie uruchomiłeś duże sudo chown
polecenie z -R
flagą?), może to spowodować szereg innych błędów systemowych i niestabilności. Więc jeśli niedawno zainstalowałeś Ubuntu , możesz chcieć zainstalować ponownie, jak sugeruje Adam Heathcote .
Ale nie trzeba ponownie instalować, aby rozwiązać ten problem . Zamiast tego po prostu napraw własność tego pliku. Jeśli później pojawią się błędy dotyczące innych plików, możesz je również naprawić (chociaż być może będziesz musiał powiedzieć nam, jakie są komunikaty o błędach, abyśmy mogli również powiedzieć ci, jak je naprawić).
sudo
nie działa, ale przy użyciusudo
jest jeden z dwóch sposobów dla administratorów do wykonywania czynności, jak korzeń na Ubuntu. Drugi to Polkit (który nazywał się PolicyKit).
Uruchom to polecenie, które używa Polkit (via pkexec
), aby zmienić własność /usr/lib/sudo/sudoers.so
back to root
(tj. Uid 0):
pkexec chown root /usr/lib/sudo/sudoers.so
Następnie spróbuj użyć sudo
ponownie. Możesz uruchomić coś tak trywialnego jak i sprawdzić, czy pojawi się komunikat o błędzie.sudo ls
Na koniec polecam uruchomić, history
aby odsłonić wszystkie uruchomione polecenia. Mam nadzieję, że wyświetli się lista wszystkich uruchomionych poleceń, które zmieniły uprawnienia. Zakładając, że sudo
teraz działa, zalecam opublikowanie nowego pytania, w tym danych wyjściowych history
, aby uzyskać pomoc w cofnięciu wszystkich dokonanych zmian własności i uprawnień do plików.
Jeśli pkexec
nie działa albo ...
Próbowałeś pkexec
i to nie działało. Ponieważ sudo
ani Polkit nie działa, aby umożliwić wykonywanie działań jako root, będziesz musiał uruchomić system w trybie odzyskiwania i uzyskać powłokę root. Aby to zrobić, przytrzymaj Shiftpodczas uruchamiania komputera, aby mieć widoczne menu rozruchowe GRUB. Wybierz pozycję, która zawiera tryb odzyskiwania słów (ogólnie, powinieneś wybrać ten najbliższy górze, która ma te słowa). Następnie pojawi się menu, w którym masz wiele opcji - wybierz opcję upuszczenia do powłoki root.
Szczegółowe instrukcje dotyczące uzyskiwania dostępu do powłoki roota w trybie odzyskiwania znajdują się tutaj:
Po utworzeniu powłoki roota uruchom:
chown root /usr/lib/sudo/sudoers.so
Jeśli pojawi się błąd związany z niemożnością modyfikacji pliku lub systemu plików, ponownie podłącz go do odczytu:
mount -rw -o remount /
(Źródło pomysłu ponownego zamontowania i jak to zrobić: ta w większości niezwiązana odpowiedź .)
Następnie po uruchomieniu tego mount
polecenia chown
ponownie uruchom powyższe polecenie i sprawdź, czy działa.
Po zakończeniu trybu odzyskiwania możesz ponownie uruchomić komputer, uruchamiając:
reboot
sudo
powinien wtedy działać, a przynajmniej dać inny błąd.
Na koniec należy pamiętać, że biorąc pod uwagę pokazane błędy, prawdopodobnie wiele plików ma niewłaściwe prawa własności lub uprawnienia. Byłoby idealnie, gdybyś mógł dowiedzieć się, które pliki zmodyfikowałeś w ten sposób. Na przykład, jeśli zorientujesz się, że wszystkie pliki znajdują się w kilku określonych folderach, może być możliwe poprawienie pełnego zakresu ostatnio występujących problemów.
Ponowna instalacja jest zdecydowanie opcją, ale zwłaszcza jeśli wszystko, co zmieniłeś, to własność (a nie uprawnienia, które są nieco trudniejsze do zrekonstruowania, ponieważ różnią się bardziej), powinno być możliwe po prostu przywrócenie uprawnień rekurencyjnie ich pierwotnym właścicielom (prawdopodobnie zwykle root) ) i całkowicie odwrócić szkody.
Pierwsze sudo
działa ponownie jest pierwszym krokiem. Mam nadzieję, że powyższa technika pozwoli ci to zrobić.
pkexec
polecenie?