Pytanie:
sudo: / etc / sudoers jest własnością uid 501, powinna wynosić 0
kxxoling
2014-11-23 15:42:12 UTC
view on stackexchange narkive permalink

Aby uruchamiać programy jako sudo bez hasła, edytowałem / etc / sudoers z niewłaściwą zawartością.

Następnie ponownie wyedytowałem go za pomocą domyślnego edytora tekstu Maca (oczywiście sudo nie może być używane, gdy / etc / sudoers jest błędne).

Próbowałem uruchomić sudo agin i otrzymałem to błąd:

  sudo: / etc / sudoers należy do uid 501, powinno wynosić 0sudo: nie znaleziono prawidłowych źródeł sudoers, kończę  

Co mam zrobić ? Nie pamiętam hasła roota (może nigdy wcześniej nie ustawiałem hasła roota).

Czy uprawnienia do naprawy Narzędzia dyskowego działają?
@Mark jak to zrobić? Używam chińskiej wersji.
@Mark Działa, ale teraz wyświetla się błąd składni.
Naprawiłem błąd w pliku sudoers, a następnie ponownie naprawiłem uprawnienia. teraz jest w porządku. Wielkie dzięki @Mark
@Mark Odpowiedz na moje pytanie, a wybiorę Cię jako zaakceptowanego.
Dziewięć odpowiedzi:
nohillside
2014-11-23 16:19:52 UTC
view on stackexchange narkive permalink

Możesz uruchomić system w trybie pojedynczego użytkownika, naciskając Cmd-S podczas uruchamiania (zobacz OS X: Jak uruchomić w trybie pojedynczego użytkownika lub w trybie szczegółowym, aby uzyskać szczegółowe informacje) co powinno dać ci skorupę roota. Następnie uruchom

  mount -uw / chown root: wheel / etc / sudoerschmod 440 / etc / sudoersreboot  

, aby naprawić problem i zrestartować.

Żeby zaoszczędzić innym trochę czasu, zmarnowałem wygłupianie się z plikiem sudoers. Uprawnienia MUSZĄ być „440”, a właścicielami MUSI być „root: wheel”.Cokolwiek innego spowoduje niepowodzenie sudo.Nie próbuj sprytnie używać dowiązań symbolicznych!`-r - r ----- 1 koło korzeniowe`
pracował, ja <3 u @patrix.To jedyny, który działał dla mnie, jestem na `Sierra ', wszystkie inne rzeczy na wszystkich stronach nie działały dla mnie.
zaraz po uruchomieniu montowania: `chown 0 / private / etc / sudoers`
@MaksimKostromin Jaki jest powód, aby to uruchomić?
powód, aby to zrobić, ponieważ rozwiąże to problem.wystarczy i po prostu to zrobiłem
@MaksimKostromin Standardowe uprawnienia dla `/ etc / sudoers` to 440, które są ustawiane przez powyższy fragment.Ustawienie ich najpierw na 0 nic nie daje (i przynajmniej na pierwszy rzut oka wygląda na szkodliwe).Problemem w tym pytaniu jest również zła własność, a nie złe uprawnienia ...
@nohillside, 0 to tylko UID, nie używam tutaj chmod, używam chown, który w zasadzie zmienia właściciela pliku.więc po poleceniu, które wskazałem, plik sudoers będzie własnością 0 (tj. root), tak jak komunikat o błędzie mówiący nam: `należy do uid 501, powinien wynosić 0`
@maksimkostromin ah, moja wina.Więc to to samo, co `` chown root ... '', a więc :-)
tak, @nohillside, robi to samo, co druga linia kodu, ale jest krótsza i wystarczająca, aby rozwiązać problem, który twórca tego tematu ma (przynajmniej na moim najnowszym Macu w dzisiejszych czasach ..)
Dziękuję Ci!Działa na „High Sierra”.Ale musisz `nacisnąć i przytrzymać 'kombinację` Cmd-S` na początku uruchamiania systemu Mac OS, aż pojawi się wiersz poleceń.
Włączyłem użytkownika ROOT, a następnie wykonałem polecenia jak powyżej.Wszystkie inne rozwiązania zawiodły dla mnie: chown root: wheel / etc / sudoers chmod 440 / etc / sudoers restart
Czy brelok `Cmd-S` działa również dla Mojave?Wypróbowałem to i nie otrzymałem ani jednej powłoki użytkownika.
mmmmmm
2014-11-23 18:37:25 UTC
view on stackexchange narkive permalink

Yosemite i wcześniejsze wersje OSX przechowują informacje o tym, jakie powinny być pliki systemowe uprawnień (tj. pliki instalowane przez system operacyjny). Dokument Apple

Aby przywrócić to, użyj Disk Utility.app.
Wybierz wolumin rozruchowy (domyślnie nazywany Macintosh HD) po lewej stronie.
Kliknij Zweryfikuj lub napraw uprawnienia dysku - ta ostatnia ponownie zastosuje zapisane uprawnienia.

Aby edytować sudoers w przyszłości, użyłbym visudo, które sprawdza, czy edycja jest prawidłowa.

prawdopodobnie nie ustawiłem tego wcześniej - idea sudo polega na tym, że nigdy nie musisz go używać, a Apple domyślnie wyłącza logowanie jako root

nie ma już czegoś takiego na `sierra`
To nie działa z OS X El Capitan
Myślę, że musimy jakoś zaktualizować ten wątek, aby poprawić odpowiedź na przykład z następnego postu
macOS mojave już tego nie ma.Jaka jest teraz poprawka?
@andrew zobacz komentarze nad twoimi, a zatem wypróbuj https://apple.stackexchange.com/a/157775/237
Graham
2019-03-10 05:19:25 UTC
view on stackexchange narkive permalink

W przypadku macOS Mojave, oto co mi zadziałało:

  1. Uruchom w trybie odzyskiwania (Cmd + R podczas uruchamiania)
  2. Narzędzia dyskowe> Wybierz Macintosh HD i zamontuj
  3. Zamknij narzędzia dyskowe
  4. Narzędzia> Terminal
  5. Wpisz: chown root: wheel "/ Volumes / Macintosh HD / etc / sudoers"
  6. Uruchom ponownie

Może zajść potrzeba zmiany właściciela ts z powrotem w terminalu:

  sudo su
sudo chown -R root: wheel / var / db / sudo / ts /
 
Dlaczego później ponownie uruchamiasz komputer?A także, dlaczego robisz „sudo su”?
klanomath
2014-11-23 18:06:50 UTC
view on stackexchange narkive permalink
  1. Otwórz narzędzie Directory Utility (/ System / Library / CoreServices /).
  2. Kliknij ikonę kłódki, aby ją odblokować, a następnie wprowadź swoją nazwę administratora i hasło.
  3. Wykonaj jedną z następujących czynności:

    • Wybierz opcję Edycja> Włącz użytkownika root, a następnie wprowadź hasło użytkownika root w polach Hasło i Potwierdź.
    • Wybierz polecenie Edycja> Zmień hasło roota, a następnie wprowadź nowe hasło użytkownika root. Nie potrzebujesz starego hasła
  4. Zaloguj się do roota
  5. Modyfikuj sudoers za pomocą visudo jak podano w plik:

    Oryginalny plik wygląda następująco:

      # sudoers plik. ## Ten plik MUSI być edytowany za pomocą polecenia 'visudo' jako root. # Błąd użycie „visudo” może skutkować błędami składni lub uprawnień do pliku, # które uniemożliwiają uruchomienie sudo. ## Zobacz stronę podręcznika sudoers, aby uzyskać szczegółowe informacje na temat pisania pliku sudoers. ## Specyfikacja aliasu hosta # Specyfikacja aliasu użytkownika # Specyfikacja aliasu Cmnd # defaults specificationDefaults env_resetDefaults env_keep + = "rozmiar bloku" Domyślnie env_keep + = "COLORFGBG COLORTERM" Domyślnie env_keep + = "__CF_USER_TEXT_ENCODING" Domyślnie env_keep + = "CHARSET LANG JĘZYK LC_ALL LC_COLLATE LC_CTYPE" Domyślnie env_keep + = "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME" Domyślnie env_keep + = "LINES COLUMNS" Defaults env_keep + = "LSCOLORS" Defaults env_keep + = "SSH_AUTH_SOCK" Defaults env_keep + = "TZ" Defaults env_keep + = "DISPLAY XAUTHORIZATION XAUTHORITY" Domyślne env_keep + = "EDYTOR WIZUALNY" Domyślne env_keep + = "HOME MAIL" # Specyfikacja aliasu uruchamiania # Specyfikacja uprawnień użytkownika root ALL = (ALL) ALL% admin ALL = (ALL) ALL # Cofnij komentarz, aby zezwolić ludzie w grupie koło do uruchamiania wszystkich poleceń #% wheel ALL = (ALL) ALL # To samo bez hasła #% wheel ALL = (ALL) NOPASSWD: ALL # Przykłady #% użytkowników ALL = / sbin / mount / cdrom, / sbin / umount / cdrom #% users localhost = / sbin / shutdown -h now  

    Info:

      machine: ~ user $ ls -l / private / etc / sudoers
    -r - r ----- 1 koło główne 1275 13 czerwca 2012 / private / etc / sudoers  

    Użycie visudo do modyfikacji pliku poprawia uprawnienia do pliku automatycznie

  6. Ponownie wyłącz użytkownika root.

Jeśli okaże się, że nie możesz edytować pliku za pomocą wiersza poleceń, otwórz go za pomocą aplikacji GUI, takiej jak TextEdit.To ominie uszkodzoną konfigurację sudo.
Kallados
2018-06-17 23:59:04 UTC
view on stackexchange narkive permalink

Świetnie i po prostu dla High Sierra - bez SUDO, bez odzyskiwania, tylko (weryfikacja / naprawa uprawnień)

  1. Pierwszy krok
 diskutil resetUserPermissions / `id -u` 
  1. Druga pozycja Wybierz Folder przez Finder -> Informacje -> odblokuj i wybierz koło ustawień na dole -> Zastosuj do załączonych elementów

gotowe!

https://support.apple.com/en-us/HT203538

Krótko mówiąc, najpierw upewnij się, że masz resetUserPermissions z wiersza poleceń, a następnie przechodząc z polecenia Finder Go, przejdź do / user / local / your_directory, kliknij prawym przyciskiem myszy i na ikonie koła zębatego dodaj uprawnienia do odczytu i zapisu dla użytkownika.
W jaki sposób resetowanie uprawnień użytkownika rozwiązuje problemy z `/ etc / sudoers`?
Dan
2018-11-24 00:48:38 UTC
view on stackexchange narkive permalink

W terminalu:

  1. Wpisz sh lub sudo sh (w moim przypadku przypadkowo ustawiłem chown -R / , więc sudo to ja, nie potrzebuję już sudo, używając sh )
  2. In sh , wpisz cd / var / db / sudo / , a następnie wykonaj ls -ln , aby sprawdzić, czy to samo co te:

      łącznie 0
    drwxr-xr-x 2 501 0 68 23 października 23:56 twoja nazwa użytkownika
    drwx ------ 3 501 0102 24 listopada 00:57 ts
    
  3. następnie wpisz ls -la , a otrzymasz:

      łącznie 0
    drwx - x - x 4 koło twojej nazwy użytkownika 136 paź 23 23:56.
    drwxr-xr-x 80 kółko twojej nazwy użytkownika 2720 24 listopada 01:55 ..
    drwxr-xr-x 2 korzeń główny 68 paź 23 23:56 twoja nazwa użytkownika
    drwx ------ 3 korzeń główny 102 Lis 24 00:57 ts
    

Powyższe wyniki pokazują, że twoja nazwa użytkownika jest ustawiona na koło , co nie powinno. Powinien wyglądać tak:

  łącznie 0
drwx - x - x 4 korzeń korzeniowy 136 października 23 23:56.
drwxr-xr-x 80 korzeń korzeniowy 2720 24 listopada 01:55 ..
drwxr-xr-x 2 korzeń główny 68 paź 23 23:56 twoja nazwa użytkownika
drwx ------ 3 korzeń główny 102 Lis 24 00:57 ts
 

Widzisz różnicę?

Teraz chcemy to naprawić. Oto co zrobiłem:

  1. Still w sh , wpisałem chown -R root: wheel / var / db / sudo / yourusername , aby zmienić go na UID 0 zamiast UID 501 jak wyżej przypadku
  2. Zrób to samo dla ts, chown -R root: wheel / var / db / sudo / ts / Teraz sprawdź ponownie uprawnienia za pomocą ls -ln i powinno wyglądać tak:

      łącznie 0
    drwxr-xr-x 2 0 0 68 23 października 23:56 dan
    drwx ------ 3 0 0102 24 listopada 00:57 ts
    UID jest teraz ustawiony na 0, a nie 501.
    
  3. Teraz robimy to samo dla .. i . uruchamiając chown -R root: wheel /var/db/sudo/./ , a następnie chown -R root: wheel /var/db/sudo/../ , a wyniki otrzymasz jako No. 4 powyżej.

Teraz chcemy naprawić / etc / sudoers należący do UID 501.

  1. Still w sh , najpierw sprawdź uprawnienia, uruchamiając ls -ln / private / etc / sudoers i powinno otrzymać to:

      -r - r ----- 1 501 0 1563 14 listopada 17:53 / private / etc / sudoers
    

Zwróć uwagę na UID 501? Chcemy, aby stało się UID 0.

  1. Więc uruchom to polecenie chown -R root: wheel / private / etc / sudoers , a następnie ponownie ls -ln / private / etc / sudoers , aby sprawdź, czy uprawnienia zmieniają się na to:

      -r - r ----- 1 0 0 1563 14 listopada 17:53 / private / etc / sudoers
    

Spróbuj więc ponownie sudo i zobacz, czy to wystarczy.

Mimo wszystko muszę Ci przypomnieć, że nie odpowiadam za Twoją maszynę po wykonaniu tych czynności, ale przynajmniej to działa w moim przypadku.

Gordon Davisson
2020-06-29 01:20:45 UTC
view on stackexchange narkive permalink

Możesz to naprawić za pomocą AppleScript, bez konieczności ponownego uruchamiania lub nawet wylogowywania & z powrotem lub istniejącej powłoki roota, lub ... Wszystko czego potrzebujesz to prawidłowe hasło administratora.

Uruchom to polecenie:

  osascript -e 'do skryptu powłoki "chown root: wheel / etc / sudoers; chmod 440 / etc / sudoers; chmod -N / etc / sudoers" z uprawnieniami administratora "
 

... a następnie na żądanie uwierzytelnij się jako administrator.

Wyjaśnienie: to jest trochę pośrednie.Używa polecenia powłoki osascript , aby uruchomić krótki skrypt AppleScript, który używa polecenia do shell script , aby uruchomić krótki skrypt powłoki.Powodem dla powłoki->AppleScript->shell jest użycie opcji z uprawnieniami administratora , która ma taki sam efekt jak sudo , ale będzie działać nawet jeśli / etc / sudoersjest całkowicie pomieszany.

andrew
2019-09-22 16:40:07 UTC
view on stackexchange narkive permalink

Jeśli nadal ma znaczenie, oto moje rozwiązanie tego problemu.Nie uruchamiam w trybie pojedynczego użytkownika.Będzie działać, jeśli masz hasło roota

  su -
góra -uw /
chown root: wheel / etc / sudoers
chmod 440 / etc / sudoers
restart
 
farzadshbfn
2020-05-19 02:16:12 UTC
view on stackexchange narkive permalink

U mnie to zadziałało: (brak hasła roota, ale wymagany jest dostęp administratora)

  1. Utworzono kolejne konto administratora test
  2. Ręcznie ustaw identyfikator UID na 0 (kliknij prawym przyciskiem myszy konto> Opcje zaawansowane)
  3. Uruchom ponownie system, zaloguj się przez test (pojawi się wiele błędów, anuluj / ok wszystkie)
  4. Idź do cd / etc / i chown -R $ (whoami) sudoers (błąd sudo zniknie teraz, ale usuwając test musimy wszystko cofnąć)
  5. Uruchom ponownie system i zaloguj się na swoje zwykłe konto
  6. Ręcznie ustaw test uid na 502 (lub 500 + coś, co nie jest pobierane przez innych administratorów)
  7. Usuń konto test


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...