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 /etc
e 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 sudo
comando e ti sta dando un errore che /etc/sudoers
non 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 sudoers
proprietà del file. Fai clic sul lucchetto. Concedere il admin
gruppo read/write
, l' system
utente read-only
, il wheel
gruppo read-only
e il everyone
gruppo no access
. Le autorizzazioni ora dovrebbero essere corrette.
Se non ti sei inserito nel admin
gruppo, 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/sudoers
usa 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'