Wszedłem chmod -R 777 /usr/bin
i teraz sudo nie działa.
To mówi sudo must be setuid root
.
Niektóre porady online, które mają działać chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
.
Po wejściu chown root:root /usr/bin/sudo
pokazuje opened in readonly mode
błąd.
permissions
sudo
root
chmod
Manojkumar
źródło
źródło
pkexec
sudo chmod -R 777 /usr/bin
sudo
pkexec
777
sudo chmod -R 777 /usr/bin
, ale dopiero po zalogowaniu się naroot
konto.Odpowiedzi:
W systemie komputerowym Ubuntu zainstalowany jest PolicyKit , więc
pkexec
można go użyć do naprawy uszkodzonegosudo
pliku wykonywalnego lubsudoers
pliku . Nie trzeba uruchamiać się w trybie odzyskiwania i nie trzeba uruchamiać z dysku CD na żywo. Nie musisz nawet uruchamiać się ponownie.W takim przypadku uruchom następujące polecenia:
Zobacz to pytanie, aby uzyskać więcej informacji.
źródło
pkexec must be setuid root
! Co za koszmar!pkexec
dokładnie taki sam jaksudo
. Zwykle jest setuid i żyje/usr/bin
. Przetestowałem to i po prostu to nie działachmod -R 777 /usr/bin
.pkexec
musi działać jako root setuid (czy nie działa on przez demona polkit jak inne procesy nie-setuid?), Ale tego potrzebuje. Skomentowałem to pytanie, aby zobaczyć, czy OP (który to zaakceptował) może rzucić światło na to, co, jeśli w ogóle, jest słuszne lub pomocne w tej odpowiedzi. Dodałem tymczasowy baner na początku tego postu, aby nie wprowadzać w błąd. Jeśli ta odpowiedź będzie nadal istnieć, jej ulepszona forma prawdopodobnie będzie zawierała niektóre informacje obecnie w tym banerze.su
, który znajduje się pod / bin/usr/bin
wymaga uprawnień roota, ale nie można rootowaćsu
na większości systemów Ubuntu, ponieważ logowania root są domyślnie wyłączone. W przeciwieństwie dosudo
ipkexec
, gdy używaszsu
do uzyskania powłoki roota lub polecenia jako root, musisz podać hasło roota, a nie własne. Ale root nie ma domyślnego hasła w Ubuntu (co oznacza, że uwierzytelnianie oparte na haśle dla roota zawsze się nie powiedzie, nie że wprowadzenie pustego hasła byłoby skuteczne). Zobacz RootSudo, aby uzyskać szczegółowe informacje.Nawet podczas uruchamiania z Live CD / Pendrive, musisz poprzedzić swoją
chmod
komendęsudo
. Twoje kroki będą wyglądały następująco:sudo chmod 0755 <path>
aby dostosować uprawnieniaJak dowiedzieć się, gdzie jest zamontowany dysk: w oknie terminala uruchom
mount
(bez argumentów). Spowoduje to wyświetlenie listy wszystkich zamontowanych urządzeń. Sprawdźtype
listę - możesz pominąć wszystko, nie używając „prawdziwego systemu plików” (twój dysk prawdopodobnie używa ext3 lub ext4 - na pewno możesz pominąć takie rzeczy jak proc, sysfs i tym podobne). Jeśli coś brzmi obiecująco (wygląda jak/dev/sda1 on /media/sda1 type ext3
), sprawdź jego zawartość za pomocą,ls /media/sda1
aby zobaczyć, czy to jest to.Jeśli to nie jest zamontowany, można skontaktować się z
/dev
wpisami w którym dysk mógł być (używającls /dev/ |grep '/dev/sd
w celu sprawdzenia dostępnych urządzeń; dysk powinien wyglądać/dev/sdaX
,/dev/sdbX
lub tym podobne - gdzie X oznacza numer). Porównaj to z listą zamontowanych urządzeń. Jeśli go nie ma, spróbuj go zamontować i sprawdź jego zawartość (jak pokazano powyżej). Aby go zamontować, najpierw utwórz punkt montowania, np.sudo mkdir /mnt/mydisk
Następnie spróbuj zamontować urządzenie za pomocąmount /dev/sda1 /mnt/mydisk
i sprawdź jego zawartość za pomocąls /mnt/mydisk
.Gdy już tam odpowiedniego dysku, można przejść, aby zmienić uprawnienia z powrotem na usr Reż
sudo chmod 0755 /mnt/mydisk/usr
.Teraz nadal możesz mieć problemy, jeśli pierwotnie uruchomiłeś
chmod
polecenie rekurencyjnie, używając-R
parametru. W takim przypadku możesz spróbować naprawić każdy wpis ręcznie - lub możesz przejść prosto do nowej instalacji ...źródło
mount /dev/sda /mnt/mydisk
z którego napisałemroot@Ubuntu:/dev#
mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk
(nie sądzę, żebyś miał partycje włączone/dev/sda
, więc musiałeś także przegapić numer partycji. Upewnij się, że podałeś właściwe urządzenie (lub montowanie się nie powiedzie).Myślę, że Mat ma rację, musisz być rootem, aby dodać bit do / usr / bin, ale oczywiście sudo jest zepsute. Jeśli masz hasło roota, możesz użyć go do zalogowania się jako root, a następnie naprawić uprawnienia za pomocą powyższej komendy. Jeśli tego nie zrobisz (a ja też nie), prawdopodobnie najlepiej byłoby:
Root jest zawsze numerem użytkownika 0, więc root w dowolnym systemie może wprowadzać zmiany do rootowania w innych systemach plików.
źródło
Nie mam dużo wiedzy Ale te kroki rozwiązały mój problem, nawet bez ponownego uruchamiania komputera. Wykonaj następujące kroki:
źródło
root
, co nie jest domyślną konfiguracją Ubuntu.Próbując ustawić uprawnienia dla moich lokalnych skryptów, złamałem uprawnienia sudo i przez pomyłkę zmieniłem własność. Byłem w stanie zmienić własność sudo na root, wykonując następujące czynności:
Krok 1: Przełącz na tryb odzyskiwania Ubuntu . Jeśli nie jesteś świadomy tego procesu, możesz znaleźć odpowiedź tutaj: /ubuntu//a/172346/223901
Krok 2: Po przejściu w tryb odzyskiwania wybierz root - monit o upuszczenie do roota
Krok 3: Wykonaj następujące polecenia
Poczekaj, aż system uruchomi się normalnie, a zobaczysz własność sudo z powrotem do rootowania.
źródło