Usando visudo para editar sudoers en Mac

Me las arreglé para hacer que el archivo sudoers en mi Mac erorr. p.ej.

$ sudo visudo
>>> /etc/sudoers: syntax error near line 45 <<<
sudo: parse error in /etc/sudoers near line 45
sudo: no valid sudoers sources found, quitting

Entonces, fui y obtuve el archivo sudoers estándar de aquí , inicié sesión como raíz y lo copié de Documentos a /etc... pero aún así no me gustó.

Si trato de ejecutar 'visudo' usando la raíz, se enciende Sublime Text y veo un sudoers.tmp en blanco que entiendo que es el archivo de bloqueo.

Si intento copiar el contenido del archivo sudoers descargado en sudoers.tmp usando Sublime, obtengo el error anterior.

Entonces, ¿alguien tiene una solución para esto? ¿Qué debo ver cuando ejecuto el comando 'visudo', Sublime Text y sudoers.tmp?

muchas gracias jorge

Supongo que lo usas bashcomo tu caparazón. Prueba EDITOR=nano visudocomo root.
¡¡¡Eso funciono!!! Muchas gracias. Tenía que asegurarme de guardarlo como sudoers en lugar de sudoers.tmp
La responderé, así que puedes marcar la pregunta como respondida.
EDITOR=visi eres masoquista.

Respuestas (2)

Si su visudono funciona como se esperaba, tal vez porque su editor no funciona correctamente, intente establecer la EDITORvariable de entorno en un valor sensato, luego inicie visudo:

EDITOR=nano visudo

para sh, bash, dashy compatibles.

Tengo lo siguiente, export EDITOR="emacsclient -t"¿se sobrescribirá?
Sólo para esta única invocación

Me encontré con este problema hoy, y la información anterior me ayudó, pero quería mantener mi editor configurado en sublime para otros fines. Agregué lo siguiente a mi ~/.bash_profile, que resuelve el problema de visudo, pero no cambia mi editor predeterminado para git, etc.

alias visudo='EDITOR=vi sudo visudo'

Cuando se ejecuta, cambia el editor a vi para el siguiente comando y le permite editar el archivo sudoers correctamente.

Puede establecer SUDO_EDITORen lugar de EDITORpara evitar eso. Además EDITOR=vi sudo visudo(sin ;antes de sudo) cambia el valor de la variable env solo para ese comando, no para todo el shell.
Gracias @Patrix, buen consejo re: simplificando mi alias, edité mi respuesta anterior para reflejar eso. En cuanto a su otro consejo, traté de agregar export SUDO_EDITOR='/usr/bin/vi'a mi ~/.bash_profile, pero no pareció afectar el sudo visudocomando en absoluto, mi variable de entorno EDITOR todavía parecía estar vigente, al menos en mi máquina con OSX 10.9.5.
Tienes razón. SUDO_EDITOR solo funciona para sudo -e /path/to/file, no para visudo. Y sudo -e no debe usarse para editar el archivo sudoers porque en ese caso no se realizará ninguna verificación de sintaxis.
Ni EDITOR ni SUDO_EDITOR funcionan correctamente para mí. Yo uso alias visudo='VISUAL=vim sudo visudo'en su lugar.