Risposte:
Se capisco correttamente il tuo problema, al momento non hai sudoers e stai provando a fare sudo e non funziona. In questo caso, per far funzionare sudo è possibile effettuare le seguenti operazioni:
Per verificare che sudo funzioni correttamente cd /etce sudo vim sudoers. Dovresti essere in grado di visualizzare il file sudoers tramite l'editor vim. Qualsiasi operazione di lettura / scrittura in / etc richiederebbe il comando sudo.
So che questo è un po 'sorprendente che anche dopo non avere sudoers, tramite l'interfaccia utente possiamo fare operazioni in / etc. Ma ha funzionato per me :)
Suppongo che stai cercando di eseguire un sudocomando e ti sta dando un errore che /etc/sudoersnon ha le autorizzazioni corrette?
Se in precedenza hai concesso lo stato del tuo account Admin, dovresti essere in grado di correggere le autorizzazioni tramite la GUI. Apri la cartella "/ etc" nel Finder ("Vai" -> "Vai alla cartella ..."), quindi apri le sudoersproprietà del file. Fai clic sul lucchetto. Concedere il admingruppo read/write, l' systemutente read-only, il wheelgruppo read-onlye il everyonegruppo no access. Le autorizzazioni ora dovrebbero essere corrette.
Se non ti sei inserito nel admingruppo, dovrai riavviare OSX in modalità utente singolo ed eseguire il comando chmod 0440 /etc/sudoers.
Abilitare l'utente root utilizzando le preferenze di sistema, quindi creare / etc / sudoers mentre si è effettuato l'accesso come utente root utilizzando
touch /etc/sudoers; chmod 440 /etc/sudoers
Nota: poiché il comando viene eseguito come root in questo caso e l'id del gruppo /etcè 0, per impostazione predefinita dovrebbe essere di proprietà dell'utente e del gruppo corretti dopo la ricostruzione, ma se per qualche motivo non lo è, eseguire
chown root:wheel /etc/sudoers
Dopo aver creato, /etc/sudoersusa visudo per inserire questo codice:
# 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
Se non sei un amministratore, puoi invece avviare il sistema in modalità utente singolo (ciò può essere fatto spegnendo il dispositivo e tenendo premuto il comando + s all'avvio) ed eseguendo:
mount -uw /
e sarai nel terminale con i privilegi di root e sarai in grado di eseguire i comandi sopra per configurare /etc/sudoers
Ho creato un file / tmp / sudoers con contenuto nella risposta di John Militer ed eseguito una variazione del comando tmm1.
osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'
Bello!!!
Le risposte sopra riguardano il contenuto predefinito del file, come spostarlo in posizione con Finder e modificarne le autorizzazioni. Tuttavia, sudo si lamenterà a meno che il proprietario del file sudoers non sia root. L'unico modo per cambiare il proprietario senza sudo è tramite questo comando:
osascript -e 'do shell script "chown root:wheel /etc/sudoers" with administrator privileges'