不建议在脚本中直接添加用户名和密码来绕过sudo
密码输入,因为这会带来严重的安全风险,比如他人可以轻易获取到你的敏感信息,导致系统被非法访问。不过,你可以通过配置sudoers
文件来让特定命令无需输入密码执行,这在你之前提供的步骤中已经有提及,下面为你详细解释和说明具体做法。
visudo
是专门用来编辑 /etc/sudoers
文件的命令,它能确保文件格式正确,避免因错误编辑导致系统无法使用 sudo
命令。
- 获取
killall
命令路径:在终端中执行以下命令,获取 killall
命令的完整路径:
一般情况下,输出结果会是 /usr/bin/killall
。
- 编辑
sudoers
文件:在终端中执行以下命令,以安全的方式编辑 sudoers
文件:
- 添加无密码执行规则:进入
visudo
编辑界面后,按 i
键进入插入模式,在文件末尾添加如下内容:
your_username ALL=NOPASSWD:/usr/bin/killall
这里的 your_username
要替换为你实际的用户名。添加这行规则后,系统会允许你使用 sudo
执行 killall
命令时无需输入密码。
- 保存并退出:添加完成后,按
Esc
键退出插入模式,然后输入 :wq
并回车,保存并退出 visudo
编辑界面。
完成上述配置后,当你运行脚本时,执行 sudo killall -STOP -c usbd
就不会再提示输入密码了。
完成配置后,你可以运行之前的脚本进行测试:
#!/bin/bash
sudo killall -STOP -c usbd
osascript -e 'tell application "Terminal" to quit' &
exit
将脚本保存为可执行文件(例如 usb_fix.command
),并赋予执行权限:
之后直接双击该脚本文件,就可以自动执行命令且无需输入密码。