Ejecutando bash script sin pedir contraseña

Escribí un pequeño script de shell que cambia algunas configuraciones que tengo que cambiar mucho. Lo guardé como un archivo .command, por lo que al hacer doble clic se ejecutará. Ahora, cada vez que lo ejecuto, me pide mi contraseña (aunque solo cambiar esa configuración no requiere ninguna contraseña cuando lo hago a mano). ¿Es posible hacer que se ejecute el script bash sin que pida una contraseña cada vez? Todo lo que hace es desactivar mi configuración de proxy...

La secuencia de comandos:

#!/bin/bash
osascript -e 'quit app "MyAppsAnywhere"'
networksetup -setautoproxystate Wi-Fi off
exit 0
Intente usar sudo networksetup ...: aún le pedirá su contraseña, pero no siempre.

Respuestas (1)

podrías usar

sudo networksetup -setautoproxystate Wi-Fi off

y luego configure sudoers(5)para permitir ese comando exacto (o cualquier networksetupinvocación (o cualquier comando)) sin una contraseña, aunque esto generalmente requiere jugar visudo(8)y si se equivoca, puede bloquearlo para el uso futuro de sudo(1). Abra un shell raíz, haga una copia de seguridad de /etc/sudoers, edite el archivo ejecutando visudo, pruébelo y use el shell raíz para restaurar la copia de seguridad de la configuración si las cosas salen mal. Las líneas de configuración relevantes sudoers(5)estarían a lo largo de las líneas de

# only with these args
yourloginnamehere ALL=(root) NOPASSWD: /usr/sbin/networksetup-setautoproxystate Wi-Fi off, /usr/sbin/networksetup-setautoproxystate Wi-Fi on

# any arguments to the command
yourloginnamehere ALL=(root) NOPASSWD: /usr/sbin/networksetup

# no password prompts at all from sudo ever
yourloginnamehere  ALL=(ALL) NOPASSWD: ALL

También visudopuede ejecutar un editor extraño de forma predeterminada, por lo que es posible que desee leer sobre las EDITORvariables DISPLAYde entorno y sudolas preguntas y documentación relacionadas antes de quedarse atascado en vi...