Antworten:
Wenn ich Ihr Problem richtig verstehe, haben Sie derzeit keine Sudoer und Sie versuchen, Sudo zu machen, und es funktioniert nicht. In diesem Fall können Sie Folgendes tun, um sudo zum Laufen zu bringen:
Zu überprüfen, Sudo läuft gut cd /etc
und sudo vim sudoers
. Sie sollten in der Lage sein, die sudoers-Datei über den vim-Editor anzuzeigen. Jede Lese- / Schreiboperation in / etc würde den Befehl sudo erfordern.
Ich weiß, dass dies ein bisschen überraschend ist, dass wir über die Benutzeroberfläche Operationen ausführen können, auch wenn wir keine Sudoer haben. Aber es hat bei mir funktioniert :)
Ich gehe davon aus, dass Sie versuchen, einen sudo
Befehl auszuführen, und dass Sie einen Fehler erhalten, /etc/sudoers
der nicht über die richtigen Berechtigungen verfügt.
Wenn Sie zuvor Ihren Kontostatus Admin
gewährt haben, sollten Sie in der Lage sein, die Berechtigungen über die GUI zu korrigieren. Öffnen Sie den Ordner "/ etc" im Finder ("Go" -> "Go to Folder ...") und öffnen Sie die sudoers
Dateieigenschaften. Klicken Sie auf das Schloss. Gewähren Sie der admin
Gruppe read/write
, dem system
Benutzer read-only
, der wheel
Gruppe read-only
und der everyone
Gruppe no access
. Die Berechtigungen sollten jetzt korrekt sein.
Wenn Sie sich nicht in die admin
Gruppe aufgenommen haben, müssen Sie OSX im Einzelbenutzermodus neu starten und den Befehl ausführen chmod 0440 /etc/sudoers
.
Aktivieren Sie den Root-Benutzer mithilfe der Systemeinstellungen und erstellen Sie dann / etc / sudoers, während Sie als Root-Benutzer angemeldet sind
touch /etc/sudoers; chmod 440 /etc/sudoers
Hinweis: Da der Befehl in diesem Fall als root ausgeführt wird und die Gruppen-ID /etc
0 lautet, sollte er nach der Neuerstellung standardmäßig dem richtigen Benutzer und der richtigen Gruppe gehören. Wenn dies jedoch aus irgendeinem Grund nicht der Fall ist, führen Sie ihn aus
chown root:wheel /etc/sudoers
Nachdem Sie erstellt haben, /etc/sudoers
verwenden Sie visudo, um diesen Code einzufügen:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
Defaults env_reset
Defaults env_keep += "BLOCKSIZE"
Defaults env_keep += "COLORFGBG COLORTERM"
Defaults env_keep += "__CF_USER_TEXT_ENCODING"
Defaults env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults env_keep += "LINES COLUMNS"
Defaults env_keep += "LSCOLORS"
Defaults env_keep += "SSH_AUTH_SOCK"
Defaults env_keep += "TZ"
Defaults env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults env_keep += "EDITOR VISUAL"
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/Revision/CMUpdatePackage/Installer.app/Contents/MacOS/I nstaller
ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/UpdatePackageInstaller.app/Contents/MacOS/UpdatePackage Installer
Wenn Sie kein Administrator sind, können Sie das System stattdessen im Einzelbenutzermodus starten (dies kann durch Ausschalten des Geräts und Halten von Befehl + s beim Start erfolgen) und ausführen:
mount -uw /
und Sie befinden sich im Terminal mit Root-Rechten und können die oben genannten Befehle zum Einrichten ausführen /etc/sudoers
Ich habe eine / tmp / sudoers-Datei mit Inhalten in der Antwort von John Militer erstellt und eine Variation des Befehls tmm1 ausgeführt.
osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'
Nett!!!
Die obigen Antworten beziehen sich auf den Standardinhalt der Datei, wie sie mit Finder verschoben und ihre Berechtigungen geändert werden. Sudo wird sich jedoch beschweren, es sei denn, der Eigentümer der sudoers-Datei ist root. Die einzige Möglichkeit, den Besitzer ohne sudo zu ändern, ist über diesen Befehl:
osascript -e 'do shell script "chown root:wheel /etc/sudoers" with administrator privileges'