3

I wrote a little shell script that switches some settings that I have to switch a lot. I saved it as a .command file, so double-clicking will run it. Now everytime I run it, it's asking for my password (although just changing those settings doesn't require any password when I do it by hand). Is it possible to make the bash script run, without it asking for a password everytime? All it does is switches my proxy settings off...

The script:

#!/bin/bash
osascript -e 'quit app "MyAppsAnywhere"'
networksetup -setautoproxystate Wi-Fi off
exit 0
  • Try using sudo networksetup ... -- it will still ask for your password, just not every time. – glenn jackman Dec 14 '17 at 16:01
2

You could use

sudo networksetup -setautoproxystate Wi-Fi off

and then configure sudoers(5) to allow that exact command (or any networksetup invocation (or any command whatsoever)) without a password, though this generally requires fiddling around with visudo(8) and if you get things wrong may lock you out of future use of sudo(1). Open a root shell, make a backup of /etc/sudoers, edit the file by running visudo, test it, and use root shell to restore the backup of the config if things go awry. Relevant sudoers(5) config lines would be along the lines of

# 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

Also visudo may run a strange editor by default, so you might want to read up on the EDITOR and DISPLAY environment variables and related sudo questions and documentation before you get stuck in vi...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .