Wie führe ich den sudo-Befehl vom Standardkonto aus aus?

Nach dem, was ich gelesen habe, ist es ein guter Sicherheitsansatz, zwei Konten zu haben, ein Administratorkonto und ein Standardkonto.

Ich versuche, den folgenden Befehl im Terminal auf meinem Standardkonto auszuführen

sudo mv /System/Library/CoreServices/Search.bundle /System/Library/CoreServices/Search.bundle.bak killall SystemUIServer

Es fragt nach einem Passwort, an dem der Prozess fehlschlägt, weil der aktuelle Benutzer "nicht in der sudoers-Datei ist".

Fragt es nach meinem Admin-Konto-Passwort oder Root-Passwort? Habe ich ein Root-Konto/Passwort, wenn ich es nicht explizit eingerichtet habe? Wie erhöhe ich vorübergehend meinen Zugriff, um den Befehl auszuführen, ohne unbedingt root zu aktivieren?

Wenn der Fragesteller die Kontrolle über dieses Konto verloren hat, registrieren Sie einfach ein neues Konto und markieren Sie es für die Unterstützung des Moderators beim Zusammenführen der Konten, wenn der Teil der Selbstzusammenführung im Hilfezentrum nicht funktioniert.

Antworten (3)

Das System fragt nach dem Passwort Ihres Kontos und überprüft dann, ob Sie sudo ausführen dürfen, basierend auf dem Inhalt von /etc/sudoers. Standardmäßig dürfen dies nur Administratoren (die das Optionsticket in den Einstellungen haben).

Falls Sie Shell-Befehle mit sudo ausführen möchten, ohne ständig den Benutzer wechseln zu müssen, haben Sie mehrere Möglichkeiten:

  • Verwenden Sie ssh <any-admin-user>@localhost, um sich als Administrator anzumelden, und führen Sie dann sudo aus
  • Fügen Sie Ihren Nicht-Admin-Benutzer hinzu /etc/sudoers, indem Sie sich als Admin-Benutzer anmelden, sudo visudoim Terminal ausführen, die %admin ALL=(ALL) ALLZeile duplizieren und %admindurch Ihren Benutzernamen ersetzen. Auf diese Weise können Sie sudo im Terminal verwenden, ohne vollen Administratorzugriff zu erhalten. Wenn Sie visudodie Datei verwenden, anstatt sie direkt zu bearbeiten, wird sichergestellt, dass die Datei beim Speichern auf syntaktische Korrektheit überprüft wird (ein Fehler in /etc/sudoerskann Sie vollständig aus Ihrem System ausschließen).
ssh ist dafür etwas übertrieben und erfordert, dass sshd tatsächlich ausgeführt wird. su <any-admin-user>wäre besser.

Ich habe hier eine ähnliche Frage beantwortet


Scheint, als könnten Sie den SU- Befehl verwenden, um zu einem anderen Benutzer im Terminal zu wechseln. Sobald Sie zum Admin-Benutzer gewechselt sind, können Sie sudo-Befehle in Verbindung mit dem Passwort des Admin-Kontos verwenden.

Wenn ich zum Beispiel an einem der Macs meines Endbenutzers bin und etwas mit erhöhten Rechten (z. B. chown) ausführen muss, ohne mich beim Administratorkonto (ladmin) abzumelden, würde ich so etwas verwenden (in Fettdruck):

Mr-Rabbits-Mac:~ notadminuser$ su ladmin

Dies wird zur Eingabe des Passworts des LAdmin-Kontos auffordern. Nach der Eingabe sehen Sie eine Bash-Eingabeaufforderung. Von hier aus kann ich alle gewünschten sudo-Befehle ausführen und bei Bedarf das Passwort von ladmin eingeben ...

bash-3.2$ sudo chown user2 /some/folder

Dadurch wird der Befehl chown unter Verwendung des jetzt angemeldeten LAdmin-Benutzers ausgeführt und zur Eingabe des Passworts des LAdmin-Kontos aufgefordert. Wenn Sie fertig sind, können Sie exit eingeben , um zur Eingabeaufforderung Ihres angemeldeten Benutzers zurückzukehren.

Screenshot eines ähnlichen Prozesses, bei dem nur sudo zum Ausführen des Befehls ls verwendet wird (nur als Beispiel).Geben Sie hier die Bildbeschreibung ein

Das ist die richtige Antwort auf diese Frage. Ich bin überrascht, warum es nicht positiv bewertet wurde!

Öffnen Sie Terminal und melden Sie sich bei Ihrem Administratorkonto an. Es sollte so aussehen:

MyComputer:~ MyStandardAccount$ login MyAdminAccountName
Password: <enter password here> --The text you type will be invisible so no one can see the password
MyComputer:~ MyAdminAccount$ sudo mv /System/Library/CoreServices/Search.bundle /System/Library/CoreServices/Search.bundle.bak killall SystemUIServer
Password: <enter password here> --Text will be invisible again
MyComputer:~ MyAdminAccount$ logout
MyComputer:~ MyStandardAccount$