Habilite sudo sin contraseña en MacOS

Mi problema

Me gustaría poder ejecutar sudocomandos en MacOS Sierra 10.12 sin tener que escribir una contraseña.

que he probado

He leído lo siguiente:

Y cambié la parte relevante de mi /etc/sudoersarchivo a:

root ALL=(ALL) ALL
%admin  ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
%sudo   ALL=(ALL) NOPASSWD: ALL
adamatan ALL=(ALL) NOPASSWD: ALL

Mi ID de usuario local ( whoami) es adamatan.

Todavía me piden que escriba una contraseña cada pocos minutos cuando llamo sudo. ¿Alguna idea de lo que está mal?

¿Sudo -i funciona en Sierra? En El Cap, lo cambiará al contexto raíz y ejecutará los archivos de recursos de inicio de sesión para esa sesión. (Seguirán necesitando ser sudoers, por lo que el esfuerzo anterior no se desperdiciará).
Funciona, pero ¿cómo resuelve el problema?
Recientemente me actualicé a Sierra y me encontré con esto. El archivo predeterminado /etc/sudoersha cambiado bastante radicalmente desde El Cap. Allí simplemente dejé caer un archivo de configuración de una línea en el directorio sudoers.d y "simplemente funcionó". Parece que las cosas han cambiado. Informaré si obtengo más información.
Tal vez solo ejecute uno de los exploits de permisos de root de macOS en su lugar;)
Eso derrota todo el punto de Sudo.
Sé que esta pregunta es antigua, pero para cualquiera que esté leyendo esto: NUNCA HABILITAR sudoSIN CONTRASEÑA. Esta es probablemente la cosa más peligrosa que una persona puede hacerle a su computadora. ¿Por qué nadie modera aquí? En mi humilde opinión, esta pregunta y todas las respuestas a continuación deben incluir una breve advertencia que diga algo como "Haz esto bajo tu propio riesgo, esto hará que tu computadora sea extremadamente vulnerable a la piratería y los virus".
@ ed9w2in6 Es común habilitar el acceso sudo sin contraseña para las cuentas de servicio que se utilizan para mantener una flota de computadoras. Por ejemplo, los sistemas de CI/CD pueden instalar dependencias en agentes de compilación de macOS y los sistemas de administración de configuración pueden ejecutar comandos para "parchar" el sistema operativo.
@ ed9w2in6: todo depende de a qué puede llegar ese acceso y qué otras capas de seguridad se aplican. Siempre hay un por qué para todo. Todavía tiene que ingresar al otro usuario que no sea Sudo para ingresar de todos modos, y la máquina puede estar en una red interna. La seguridad es siempre una compensación y una combinación de cosas. Simplemente no es cierto hacer una declaración general de que nunca debe habilitar sudo sin contraseña. Lo hago de forma rutinaria. Además, todos deberían usar todo en el intercambio de pilas bajo su propio riesgo. Aquí no hay garantías de nada.
Bueno, nunca había imaginado que macOS se usaría como un sistema CI/CD, lo que puede ser un buen caso de uso de un sudo sin contraseña. Estoy de acuerdo en que NUNCA es de hecho una palabra fuerte, DEBERÍA es probablemente una mejor elección de palabra. En tales casos, probablemente también sea mejor incluir solo ciertos comandos en la lista blanca.

Respuestas (5)

Abre una terminal, ejecutasudo visudo

Edite la línea:

%admin ALL=(ALL) ALL

Decir:

%admin ALL=(ALL) NOPASSWD: ALL

Ahora, ahora debería poder ejecutar sudosin contraseña.

reiniciarlo no es realmente necesario
la clave es usar sudo visudoen lugar de sudo vi /etc/sudoers, especialmente ahora con el sistema de archivos raíz de solo lectura en MacOS 10.15.
Recibo "visudo: /etc/sudoers: operación no permitida" cuando ejecuto sudo visudo
probablemente necesites abrir una nueva terminal después de eso
Funciona en mi Mac Pro 2021. Monterey Ver 12.4

Mejor no editar /etc/sudoersdirectamente. En cambio, el /etc/sudoersarchivo incluye una línea:

## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d

Así que mejor simplemente agregue un archivo vacío debajo /private/etc/sudoers.d/mysudoy utilícelo visudopara llenarlo con un contenido como:

mylogin            ALL = (ALL) NOPASSWD: ALL

Recuerde ejecutar siempresudo visudo después de crear el archivo vacío debajo /private/etc/sudoers.d/para que visudo también verifique la sintaxis en ese archivo, o de lo contrario podría terminar con una configuración de sudo rota y la incapacidad de ejecutar visudopara arreglarlo.

Usted ha sido advertido

Me vi obligado a hacer esto en el último sistema operativo de mac, no me permitía actualizar el archivo sudoers, seguía diciendo que no era válido. ¡Gracias!
root ALL=(ALL) ALL
%admin ALL=(ALL) NOPASSWD: ALL

stens ALL = (ALL) NOPASSWD: ALL # my userid is stens

Ejecute el comando terminal whoami para encontrar su nombre de usuario (también conocido como ldapname).

> whoami

Persiga eso ejecutando el siguiente comando (siéntase cómodo usando VI/VIM antes de continuar).

> sudo visudo -f /private/etc/sudoers.d/sudogo

NOTA 1: La sintaxis -f le permitirá especificar una ubicación alternativa para el archivo sudoers. Con esta opción, visudo editará (o comprobará) el archivo sudoers de su elección, en lugar del predeterminado, /etc/sudoers. El archivo de bloqueo utilizado es el archivo sudoers especificado con ".tmp" adjunto. Solo en el modo de verificación, el argumento de -f puede ser -, lo que indica que sudoers se leerá desde la entrada estándar.

NOTA 2/ADVERTENCIA: Podría haber creado un archivo llamado "nopw" en lugar de sudogo. Sin embargo, los piratas informáticos son astutos y buscarán las letras "PW" (abreviatura de contraseña). Siéntase libre de cambiar "sudogo" a algo diferente, lógico y seguro. Tenga en cuenta que no se agregó una extensión al final del archivo; No es requerido.

Un ejemplo se publica a continuación. Active el modo de inserción con i, copie las dos líneas publicadas a continuación en el archivo en blanco. Sustituya INSERT_USERNAME por ldapname. Pulse escape, guarde y salga del archivo con :wq desde el modo de comando.

# user(s) below can can run any script on this machine
INSERT_USERNAME        ALL = (ALL) NOPASSWD: ALL

Ejecute sudo visudo (-f y ruta omitida) por última vez. El comando abrirá el archivo sudoers y verificará los cambios. Proceda a escribir :q! para salir de /etc/sudoers sin guardar los cambios.

> sudo visudo

Intente configurar NOPASSWD en el usuario raíz. En/etc/sudoers

root            ALL = (ALL) NOPASSWD: ALL