Ja to zrobiłem:
sudo chown -R myname /usr/
a teraz nie mogę użyć sudo
polecenia z powodu tego błędu:
sudo: musi być rootem setuid
A gdy czytam, oznacza to, że właścicielem tego pliku /usr/bin/sudo
nie jest root. To mój użytkownik teraz z powodu chown w /usr
folderze.
Na wielu forach i blogach ludzie sugerują, aby zrobić to jako root:
# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo
... ale problem polega na tym, że muszę się zalogować jako root, ale nie mogę, ponieważ jeśli napiszę su
w terminalu, hasło jest nieprawidłowe (właściwie używam hasła, które dodałem do mojego użytkownika):
$ su
Password:
su: Authentication failure
Czy mogę odzyskać sudo
polecenie?
Edycja: Moje Ubuntu jest pod Paralells na moim Mac OS X.
su
pojawi się monit o podanie hasła użytkownika root , a nie hasła użytkownika, jak w przypadkusudo
. Czy znasz hasło roota dla tego komputera?sudo chmod -R cirk:cirk /usr
Co próbujesz osiągnąć?Odpowiedzi:
Jeśli masz podobny system, którego możesz użyć jako przewodnika, aby sprawdzić, jakie jest poprawne prawo własności do wszystkich plików, możesz uruchomić system w trybie ratunkowym, upuścić w skorupie głównej i ręcznie przywrócić poprawne prawo własności do wszystkich pliki w
/usr
.Najszybszym sposobem może być ponowna instalacja systemu operacyjnego lub przywrócenie z kopii zapasowej.
W Ubuntu lub podobnym domyślnie nie ma hasła roota (konto jest wyłączone), dlatego nie możesz
su
.źródło
chown
niechmod
. Ponieważ wszystko w/usr
folderze powinno byćroot:root
, powinna to być łatwa poprawka, a nie żmudna poprawka, którąchmod
oznaczałby clobber.chown
resetuje bity setxid. Jest kilka plików/usr
, które nie są własnością root; więcej, które są w innej grupie (szczególnie w programach setgid/usr/bin
).Ponieważ posiadasz uprawnienia do jedynej rzeczy, która daje ci dostęp do poziomu root, będziesz potrzebować pomocy POZA obecnym środowiskiem oprogramowania, aby to naprawić.
Sugeruję, że najłatwiejszym sposobem jest uruchomienie LiveCD dla twojej dystrybucji, zamontowanie napędu i zmiana uprawnień do plików przy użyciu
chmod
wymienionych tam list.Możesz także spróbować uruchomić komputer w trybie pojedynczego użytkownika, aby uzyskać powłokę root.
Pamiętaj, że zwykle wszystkie rzeczy w
/usr/
katalogu powinny być własnością,root
więc powinieneś być w stanie zrobić rekurencję,chown
aby naprawić wszystko, co zepsułeś. ( Edycja: Per @Gilles komentuje najwyraźniej działachown
przerwy setuid i sgid bity, więc będzie trzeba ręcznie porównać do istniejącego systemu w celu przywrócenia wszystkich tych, kiedy ponownie ustalić prawo własności).Jednak bardzo niewielu powinno być
4111
. Ten dodatkowy ma specjalne uprawnienia, ale sprawia, że działa jako root, nawet gdy jest uruchamiany jako użytkownik! Tylkosudo
i kilka wybranych poleceń powinno mieć ustawiony ten bit uprawnień. Jeśli nie uruchomiłeś achmod
, prawdopodobnie nie musisz wcale tego naprawiać , wszystkie uprawnienia powinny już być poprawne. Nie uruchamiaj dużejchmod
operacji, nie wiedząc, jakie powinny być wszystkie uprawnienia.źródło
sudo chown -R root /usr/
?/usr
LivdCD, musisz gdzieś go zamontować i uruchomić wbrew tej ścieżce, powiedzmy/mnt/mydrive/usr
. Następnie musisz naprawić bit setuid/mnt/mydrive/usr/bin/sudo
. Następnie przejrzyj / usr na żywo i sprawdź, czy istnieją inne własności inne niż root.find /usr -not -uid 0
i zmień te, aby pasowały. Następnie poszukaj rzeczy, które mają różne ustawione bity setuid lub setgid i upewnij się, że one również pasują. Jeśli masz prawdziwy system Ubunutu do porównania, byłoby to najlepsze.W trybie odzyskiwania Ubuntu wprowadź następujące polecenia .. To naprawiło problem dla mnie ..
Mam nadzieję, że to rozwiąże problem. (Lub kogoś innego)
Znalazłem to tutaj w tym poście na blogu .
źródło
Jest to o wiele łatwiejsze niż sugerują inne odpowiedzi. Nie ma potrzeby formatowania, ponownego uruchamiania ani używania Live CD.
To najprostszy sposób na rozwiązanie tego problemu. Wyjaśnienie, sudo jest uszkodzone (wiem, że uszkodzony jest zły termin, ale nie działa, więc musimy unikać używania sudo)
Przetestowałem tę metodę w systemie Linux. Który jest systemem podobnym do Ubuntu. Daj mi znać, że ta metoda nie działa na żadnym innym systemie operacyjnym. Odpowiednio zaktualizuje odpowiedź.
Dzięki
źródło
su root
, a ponieważsudo
nie działa, nie można ustawić hasła rootaTo jest prostsze niż ludzie to robią. Spróbuj wykonać następujące czynności:
su
polecenia, wyloguj się jako bieżący użytkownik i zaloguj się ponownie jako root za pomocą zwykłego Menedżera wyświetlania (tj. Ekranu logowania).chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
To powinno naprawić
sudo
polecenie i sprawić, byś znów był gotowy do działania.źródło
Aby zalogować się jako root, bez su lub sudo, możesz użyć pkexec:
Teraz zmień uprawnienia do plików:
źródło