Anscheinend kann ich auf meinem Mac nicht mehr sudo.
Piers-MacBook-Air:~ piersb$ sudo ls
Password:
Sorry, user piersb is not allowed to execute '/bin/ls' as root on Piers-MacBook-Air.local.
Piers-MacBook-Air:~ piersb$
Es hat vor dem letzten El Capitan-Update (dem Upgrade auf 10.11.4) funktioniert, und ich verwende ein MacBook Air von Mitte 2013. Das Konto ist ein Administratorkonto, und ich konnte vorher sudo ausführen. Mein erster Gedanke war, mich in /etc/sudoers einzufügen, aber, haha, dafür braucht man natürlich sudo.
Piers-MacBook-Air:~ piersb$ ls -al /etc/sudoers
-r--r----- 1 root wheel 272 5 Apr 11:15 /etc/sudoers
Piers-MacBook-Air:~ piersb$ groups
staff com.apple.sharepoint.group.1 everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh
Ich kann einen neuen Admin-Benutzer erstellen, aber dieser Benutzer hat das gleiche Problem.
Piers-MacBook-Air:~ testuser$ sudo ls
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:
Sorry, user testuser is not allowed to execute '/bin/ls' as root on
Piers-MacBook-Air.local.
So. Wie gebe ich mir wieder Zugriff auf sudo? Und ist das ein allgemeines Problem?
Sieht so aus, als wäre es nur zufällig beim Update 10.11.4 erschienen; das problem war eigentlich, als ich vagrant installiert habe. Irgendwann habe ich oder ein von mir verwendetes Skript /etc/sudoers mit dem Folgenden überschrieben, anstatt es anzuhängen:
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE
Also war /etc/sudoers Toast. Hier erfahren Sie, wie Sie das Problem beheben können, wenn dies bei Ihnen der Fall ist.
Sie sollten jetzt /etc/sudoers sicher bearbeiten. Oder zumindest so sicher, wie Sie alles tun können, während Sie als Root angemeldet sind.
Ersetzen Sie den Unsinn, den Sie dort haben, durch eine ordnungsgemäß sichere Datei. Hier ist die, die ich verwendet habe:
#
# 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"
Defaults env_keep += "HOME MAIL"
# 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
exit
, um die Root-Shell zu verlassenUnd - hurra! - Ihr sudo-Befehl sollte wieder betriebsbereit sein.
kein Hang