我的 sudoers 文件似乎被忽略了。我通过 vim 添加了这两行 (
sudo visudo
):
myusername ALL=(ALL) NOPASSWD: /usr/sbin/networksetup -setsocksfirewallproxy
myusername ALL=(ALL) NOPASSWD: /usr/sbin/networksetup -setsocksfirewallproxystate
但是当我运行任一命令时,系统会提示我输入密码:
$ sudo -n networksetup -setsocksfirewallproxy "Wi-Fi" localhost 3000
sudo: a password is required
sudoers 文件仅查找您给出的命令。您尝试使用 sudoers 文件中未定义的额外参数来运行它;这就是为什么系统会提示您输入密码。
尝试这样的事情:
myusername ALL = NOPASSWD : /usr/sbin/networksetup -setsocksfirewallproxy *, /usr/sbin/networksetup -setsocksfirewallproxystate *