Warum dauert Sudo viel zu lange?

13

Ich habe kürzlich ein Update auf macOS Sierra 10.12.4 Beta (16E144f) durchgeführt. Dies kann sudozu einer Verzögerung von bis zu 10 Minuten führen, da dies die letzte Änderung ist, an die ich mich erinnere, seit dieses Problem aufgetreten ist. Ich musste noch nie so lange auf ein Basisprogramm warten und etwas stimmt eindeutig nicht. Der Befehl ist schließlich erfolgreich, aber nach viel zu langem Warten.

Ich habe diese Frage als Referenz verwendet. Bisher habe ich versucht, meinen Hostnamen am Ende der 127.0.0.1Zeile in hinzuzufügen /etc/hosts. Ich habe nachgesehen /etc/resolv.confund hatte einige zusätzliche Einträge aus der Zeit, als ich in einem Netzwerk war, das manuelle DNS-Einträge benötigte, aber ich habe sie entfernt und es gab keinen Unterschied. Ich habe den networksetup -setdnsserversBefehl verwendet, um die ursprünglichen Werte wiederherzustellen. Das Internet funktioniert immer noch gut, aber immer noch sehr langsam sudo.

Ich habe den logger 'test'Befehl ausprobiert /var/log/system.log, weil ich dachte, er würde schreiben , aber es sieht so aus, als hätte er diese Datei vollständig gelöscht, obwohl sie bald neu erstellt wurde.

Ich hatte gehofft, den straceBefehl verwenden zu können, um zu sehen, was während der sudoAusführung geschah, aber dieser Befehl ist unter OS X nicht verfügbar. Hat jemand dieses Problem unter diesem Betriebssystem schon einmal festgestellt?

/var/log/system.log enthält die folgenden Meldungen, die möglicherweise relevant sind. Wieder ist der Befehl schließlich wie gewohnt erfolgreich:

Feb  1 00:07:39 mycomputer com.apple.xpc.launchd[1] (com.apple.imfoundation.IMRemoteURLConnectionAgent): Unknown key for integer: _DirtyJetsamMemoryLimit
Feb  1 00:07:56 mycomputer com.apple.xpc.launchd[1] (com.apple.quicklook[2355]): Endpoint has been activated through legacy launch(3) APIs. Please switch to XPC or bootstrap_check_in(): com.apple.quicklook
Feb  1 00:08:16 mycomputer System Preferences[1886]: I can not do what i want
Feb  1 00:11:23 mycomputer com.apple.xpc.launchd[1] (com.apple.opendirectoryd[2335]): Service exited with abnormal code: 70
Feb  1 00:12:07 mycomputer syslogd[54]: ASL Sender Statistics
Feb  1 00:16:35 mycomputer com.apple.xpc.launchd[1] (com.apple.opendirectoryd[2395]): Service exited with abnormal code: 70

Jede Hilfe wäre dankbar.

Spencer Williams
quelle
Ist es wichtig, welchen Befehl Sie durch sudo ausführen? In welcher Beziehung stehen die Zeitstempel im Protokoll zu Ihrer Aktion zum Ausführen von sudo und zum Durchlaufen von sudo? Ich sehe dort opendirectoryd. Arbeiten Sie mit einem lokalen Konto oder einem Netzwerkkonto? Was passiert, wenn Sie Benutzer wechseln (oder lokal einen neuen einrichten), ist sudo dort auch langsam?
Nohillside
Ich verwende dieselbe Beta und Sudo ist wie immer schnell.
Nohillside
1
@patrix Ah okay. Ja, es könnte sehr gut etwas anderes sein. Ja, es passiert, egal welchen Befehl ich mit sudo verwende, die Verzögerung ist konsistent. Grundsätzlich beginnt der Befehl ungefähr um diese Protokollzeile herum com.apple.quicklookund endet schließlich am Ende. In diesem Beispiel waren es also ungefähr 8 Minuten mit all diesen Nachrichten dazwischen. Die Meldung opendirectoryd scheint immer dann aufzutreten, wenn sie schließlich sudo lsin meinem lokalen Home-Verzeichnis ausgeführt wird. Im Moment arbeite ich nur mit lokalen Ordnern. Ich habe nur einen Benutzer auf diesem Computer, obwohl ich sehen kann, was mit einem neuen Konto passiert ...
Spencer Williams
@patrix Ich habe gerade einen anderen Benutzer mit Administratorrechten erstellt. Leider hat dieses Konto das gleiche Problem.
Spencer Williams

Antworten:

11

Die Antwort von ErikMH brachte mich auf die Idee, zunächst nur zu versuchen, die sudoers-Datei zurückzusetzen, ohne mein gesamtes System erneut zurückzusetzen / zu aktualisieren. Also kurz gesagt:

  1. Führen Sie dies aus, um eine Root-Shell zu erhalten: sudo -s
  2. Machen Sie eine Kopie von /private/etc/sudoers
  3. Lauf: cp /private/etc/sudoers\~orig /private/etc/sudoers
  4. Korrigieren Sie Berechtigungen, indem Sie Folgendes ausführen: chmod 440 /private/etc/sudoers ; chown root:wheel /private/etc/sudoers
  5. Verschieben Sie alle Dateien /private/etc/sudoers.d/von dort weg
  6. Testen Sie sudoin einem anderen Terminal
  7. Vergessen Sie nicht, diese Shell zu verlassen, um zu verhindern, dass versehentlich Befehle als root ausgeführt werden, wenn Sie dies nicht möchten

Jetzt sudosollte das Laufen wieder funktionieren.

Der nächste Schritt besteht darin, die Unterschiede zwischen der alten sudoers-Datei (die Sie in Schritt 2 kopiert haben) und der aktuellen Datei zu überprüfen und diese Änderungen Schritt für Schritt zurück zu /private/etc/sudoersoder hinzuzufügen, indem Sie /private/etc/sudoers.d/jedes Mal einen Befehl ausführen sudo, um zu überprüfen, ob die Änderung sie bricht.

In meinem Fall hatte ich eine nicht vorhandene Gruppe in der sudoers-Datei angegeben. Das zu korrigieren hat mein Problem behoben.

Cedric Dubois
quelle
arbeitete unter macOS 10.13!
Nisba
Hat auch für mich funktioniert (OSX 10.13). Hatte auch das gleiche Problem - nicht vorhandene Gruppe in Sudoer-Datei.
Petr Cibulka
Hmm ... Ich erinnere mich nicht daran, die Sudoers-Datei auf dem Computer geändert zu haben, auf dem ich dieses Problem hatte, aber ich wünschte, ich hätte versucht, was Sie vorschlagen, anstatt mein System wiederherzustellen.
Spencer Williams
Ich habe Ihre Antwort akzeptiert, weil es so aussieht, als würden die Leute bestätigen, dass sie hilft, und ich wünschte, ich hätte dies zuerst versucht, und ich empfehle im Allgemeinen auch nicht, Ihr gesamtes System wiederherzustellen.
Spencer Williams
2

Dies kann beim Upgrade auf 10.12.4 auftreten, wenn Sie jemals die Datei / private / etc / sudoers bearbeitet haben.

Die einfachste Lösung ist:

  1. Kehren Sie zu einer früheren Version des Systems zurück (Sie klonen Ihr System immer vor dem Update, oder?)
  2. Löschen Sie / private / etc / sudoers
  3. Kopieren Sie / private / etc / sudoers ~ orig to sudoers
  4. Setzen Sie den Besitz von sudoers auf schreibgeschützt auf system / root zurück
  5. Aktualisieren Sie das System auf 10.12.4
ErikMH
quelle
"Dies kann beim Upgrade auf 10.12.4 auftreten, wenn Sie jemals die Datei / private / etc / sudoers bearbeitet haben." Wissen wir, was es tatsächlich verursacht?
Wowfunhappy
1

Ich wünschte, ich hätte die eigentliche Ursache dafür finden können, aber ich könnte das Problem erst nach dem Wiederherstellen der Systemsoftware beheben. Ich war vorher in der öffentlichen Beta von macOS Sierra, aber jetzt bin ich in der Haupt-Beta.

Ich lade langsam alle meine Programme zurück und werde feststellen, ob ich wieder eine Verzögerung habe sudo.

Spencer Williams
quelle
0

Ich hatte eine Datei darin /etc/sudoers.d/, die ich entfernt habe. Voila - sudoist wieder schnell.

vidstige
quelle