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
podrías usar
sudo networksetup -setautoproxystate Wi-Fi off
y luego configure sudoers(5)
para permitir ese comando exacto (o cualquier networksetup
invocació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 visudo
puede ejecutar un editor extraño de forma predeterminada, por lo que es posible que desee leer sobre las EDITOR
variables DISPLAY
de entorno y sudo
las preguntas y documentación relacionadas antes de quedarse atascado en vi
...
glen jackman
sudo networksetup ...
: aún le pedirá su contraseña, pero no siempre.