Aktivieren Sie sudo ohne Passwort unter MacOS

Mein Problem

Ich möchte sudoBefehle auf MacOS Sierra 10.12 ausführen können, ohne ein Passwort eingeben zu müssen.

Was habe ich versucht

Folgendes habe ich gelesen:

Und änderte den relevanten Teil meiner /etc/sudoersDatei in:

root ALL=(ALL) ALL
%admin  ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
%sudo   ALL=(ALL) NOPASSWD: ALL
adamatan ALL=(ALL) NOPASSWD: ALL

Meine lokale Benutzer-ID ( whoami) ist adamatan.

Ich werde immer noch alle paar Minuten aufgefordert, ein Passwort einzugeben, wenn ich anrufe sudo. Irgendeine Idee, was falsch ist?

Funktioniert sudo -i auf Sierra? In El Cap wechselt es Sie in den Root-Kontext und führt Anmelderessourcendateien für diese Sitzung aus. (Müssen immer noch Sudoers sein, damit frühere Bemühungen nicht verschwendet werden).
Funktioniert, aber wie löst es das Problem?
Ich habe gerade ein Upgrade auf Sierra durchgeführt und bin darauf gestoßen. Die Standarddatei /etc/sudoershat sich von El Cap ziemlich radikal geändert. Dort habe ich einfach eine einzeilige Konfigurationsdatei in das Verzeichnis sudoers.d abgelegt und es hat "einfach funktioniert". Scheint sich etwas geändert zu haben. Ich melde mich wieder, wenn ich mehr Infos bekomme.
Vielleicht führst du stattdessen einfach einen der MacOS-Root-Berechtigungs-Exploits aus ;)
Das macht den Sinn von sudo zunichte
Ich weiß, diese Frage ist alt, aber für alle, die dies lesen: NIEMALS sudoOHNE PASSWORT AKTIVIEREN. Dies ist wahrscheinlich das Gefährlichste, was eine Person ihrem Computer antun kann. Warum moderiert hier niemand? IMHO sollten diese Frage und alle folgenden Antworten einen kurzen Vorbehalt enthalten, der etwas wie "Tun Sie dies auf eigene Gefahr, dies wird Ihren Computer extrem anfällig für Hacking und Viren machen."
@ed9w2in6 Es ist üblich, den sudo-Zugriff ohne Passwort für Dienstkonten zu aktivieren, die zur Verwaltung einer Computerflotte verwendet werden. Beispielsweise können CI/CD-Systeme Abhängigkeiten von macOS-Build-Agents installieren und Konfigurationsverwaltungssysteme können Befehle ausführen, um das Betriebssystem zu "patchen".
@ ed9w2in6 - alles hängt davon ab, was dieser Zugriff erreichen kann und welche anderen Sicherheitsebenen angewendet werden. Es gibt immer ein Warum für alles. Sie müssen trotzdem in den anderen Nicht-Sudo-Benutzer einsteigen, um überhaupt hineinzukommen, und die Maschine befindet sich möglicherweise in einem internen Netzwerk. Sicherheit ist immer ein Kompromiss und eine Kombination von Dingen. Es ist einfach nicht wahr, eine pauschale Aussage zu machen, dass Sie sudo niemals ohne Passwort aktivieren sollten. Ich mache es routinemäßig. Außerdem sollte jeder alles auf eigene Gefahr beim Stapelaustausch verwenden. Hier gibt es für nichts eine Garantie.
Nun, ich hatte mir nie vorgestellt, dass macOS als CI/CD-System verwendet wird, was ein guter Anwendungsfall für ein sudo ohne Passwort sein kann. Ich stimme zu, dass NIE in der Tat ein starkes Wort ist, SOLLTE wahrscheinlich die bessere Wortwahl ist. In solchen Fällen ist es wahrscheinlich auch besser, nur bestimmte Befehle auf die Whitelist zu setzen.

Antworten (5)

Öffnen Sie ein Terminal, führen Sie es aussudo visudo

Bearbeiten Sie die Zeile:

%admin ALL=(ALL) ALL

Sagen:

%admin ALL=(ALL) NOPASSWD: ALL

Jetzt sollten Sie jetzt sudoohne Passwort laufen können.

Neustart nicht wirklich nötig
der Schlüssel ist, sudo visudostatt zu verwenden sudo vi /etc/sudoers– besonders jetzt mit dem schreibgeschützten Root-Dateisystem in MacOS 10.15.
Ich erhalte „visudo: /etc/sudoers: Vorgang nicht erlaubt“, wenn ich sudo visudo ausführe
Sie müssen danach wahrscheinlich ein neues Terminal öffnen
Funktioniert auf meinem Mac Pro 2021. Monterey Ver 12.4

Besser nicht /etc/sudoersdirekt editieren. Stattdessen /etc/sudoersenthält die Datei eine Zeile:

## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d

Fügen Sie also besser einfach eine leere Datei darunter hinzu /private/etc/sudoers.d/mysudound visudofüllen Sie sie mit einem Inhalt wie:

mylogin            ALL = (ALL) NOPASSWD: ALL

Denken Sie daran, immersudo visudo nach dem Erstellen der leeren Datei unter auszuführen /private/etc/sudoers.d/, damit visudo auch die Syntax dieser Datei überprüft, da Sie sonst möglicherweise mit einer fehlerhaften sudo-Konfiguration enden und die Ausführung nicht ausführen können visudo, um sie zu reparieren.

Du wurdest gewarnt

Ich war gezwungen, dies auf dem neuesten Mac-Betriebssystem zu tun, es ließ mich die Sudoers-Datei nicht aktualisieren, sagte immer wieder ungültig. Vielen Dank!
root ALL=(ALL) ALL
%admin ALL=(ALL) NOPASSWD: ALL

stens ALL = (ALL) NOPASSWD: ALL # my userid is stens

Führen Sie den Befehl terminal whoami aus, um Ihren Benutzernamen (auch bekannt als ldapname) zu finden.

> whoami

Verfolgen Sie dies, indem Sie den folgenden Befehl ausführen (machen Sie sich mit VI/VIM vertraut, bevor Sie fortfahren).

> sudo visudo -f /private/etc/sudoers.d/sudogo

HINWEIS 1: Die -f-Syntax ermöglicht es Ihnen, einen alternativen Speicherort für die Sudoers-Datei anzugeben. Mit dieser Option bearbeitet (oder überprüft) visudo die sudoers-Datei Ihrer Wahl anstelle der Standarddatei /etc/sudoers. Die verwendete Sperrdatei ist die angegebene sudoers-Datei mit dem Anhang „.tmp“. Nur im Check-Only-Modus kann das Argument für -f - sein, was anzeigt, dass Sudoer von der Standardeingabe gelesen werden.

ANMERKUNG 2/WARNUNG: Anstelle von sudogo hätten Sie auch eine Datei mit dem Namen „nopw“ erstellen können. Hacker sind jedoch geschickt und suchen nach den Buchstaben „PW“ (Abkürzung für Passwort). Fühlen Sie sich frei, "sudogo" in etwas anderes, logisches und sicheres zu ändern. Beachten Sie, dass am Ende der Datei keine Erweiterung hinzugefügt wurde. Es ist nicht notwendig.

Ein Beispiel ist unten veröffentlicht. Einfügemodus mit i aktivieren, beide unten geposteten Zeilen in die leere Datei kopieren. Ersetzen Sie INSERT_USERNAME für ldapname. Drücken Sie Escape, speichern und verlassen Sie die Datei mit :wq aus dem Befehlsmodus.

# user(s) below can can run any script on this machine
INSERT_USERNAME        ALL = (ALL) NOPASSWD: ALL

Führen Sie sudo visudo (-f und Pfad weggelassen) ein letztes Mal aus. Der Befehl öffnet die sudoers-Datei und überprüft die Änderungen. Fahren Sie mit der Eingabe von :q fort! um /etc/sudoers zu verlassen, ohne die Änderungen zu speichern.

> sudo visudo

Versuchen Sie, NOPASSWD für den Root-Benutzer festzulegen. In/etc/sudoers

root            ALL = (ALL) NOPASSWD: ALL