Ejecutando el script bash sin pedir una contraseña

3

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 el doble clic lo ejecutará. Ahora, cada vez que lo ejecuto, me pide mi contraseña (aunque cambiar esa configuración no requiere ninguna contraseña cuando lo hago a mano). ¿Es posible ejecutar el script de bash sin que se solicite una contraseña cada vez? Todo lo que hace es desactivar la configuración de mi proxy ...

El guión:

#!/bin/bash
osascript -e 'quit app "MyAppsAnywhere"'
networksetup -setautoproxystate Wi-Fi off
exit 0
    
pregunta lte__ 14.12.2017 - 15:53

1 respuesta

2

Puedes usar

sudo networksetup -setautoproxystate Wi-Fi off

y luego configure sudoers(5) para permitir ese comando exacto (o cualquier invocación networksetup (o cualquier comando) sin una contraseña, aunque esto generalmente requiere que juegue con visudo(8) y si se equivoca, es posible que se bloquee Usted está fuera del uso futuro de sudo(1) . Abra un shell de root, haga una copia de seguridad de /etc/sudoers , edite el archivo ejecutando visudo , pruébelo y use el shell de root para restaurar la copia de seguridad de la configuración si las cosas van mal. Las líneas de configuración relevantes sudoers(5) estarían en la línea 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 visudo puede ejecutar un editor extraño de forma predeterminada, por lo que es posible que desee leer las variables de entorno EDITOR y DISPLAY y las preguntas y documentación relacionadas relacionadas con sudo antes de atascarse en vi . ..

    
respondido por el thrig 14.12.2017 - 17:47

Lea otras preguntas en las etiquetas