terminal – 无需输入密码即可运行bash脚本

我写了一个小shell脚本来切换一些我必须切换的设置.我将其保存为.command文件,因此双击将运行它.现在每次我运行它,它都要求我的密码(虽然只是更改这些设置不需要任何密码,当我手工完成).
有没有可能让bash脚本运行,而不是每次都要求输入密码?它只是切换我的代理设置…

剧本:

#!/bin/bash
osascript -e 'quit app "MyAppsAnywhere"'
networksetup -setautoproxystate Wi-Fi off
exit 0
最佳答案
你可以用

sudo networksetup -setautoproxystate Wi-Fi off

然后配置sudoers(5)以允许没有密码的确切命令(或任何网络设置调用(或任何命令)),尽管这通常需要摆弄visudo(8)并且如果你弄错了可能会锁定你未来使用sudo(1).打开root shell,备份/ etc / sudoers,运行visudo编辑文件,测试它,如果出现问题,使用root shell恢复配置的备份.相关的sudoers(5)配置行将是行

# 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

此外,visudo默认情况下可能会运行一个奇怪的编辑器,因此您可能需要阅读EDITOR和DISPLAY环境变量以及相关的sudo问题和文档,然后再陷入vi …

转载注明原文:terminal – 无需输入密码即可运行bash脚本 - 代码日志