我只需要在启动时重新启动 tor 服务,脚本很简单:
#!/bin/bash
sudo service tor restart
但我想在每次启动时执行它而不需要密码。
我关注了这些帖子:https://askubuntu.com/questions/425754/how-do-i-run-a-sudo-command-inside-a-script/425990
我用这个更改了我的 sudoers 文件:
username ALL=(ALL) NOPASSWD: /path/to/script
但当我尝试在终端中执行它时,脚本总是要求我输入密码。我还尝试了这篇文章中的其他答案,但由于该文章没有验证,我没有找到解决方案。如果有人有解决方案?
答案1
线路
username ALL=(ALL) NOPASSWD: /path/to/script
给出username
运行脚本的权利sudo
,如
$ sudo /path/to/script
如果您希望用户能够在脚本中tor
专门重新启动,请使用sudo
username ALL=(ALL) NOPASSWD: /usr/sbin/service tor restart
现在脚本可以做
sudo /usr/sbin/service tor restart
请注意,此命令必须与sudo
配置完全对应。
答案2
最佳实践是不要在脚本中使用 sudo。
- 不使用 sudo 编写脚本
- chmod 脚本文件到 root 并剥夺用户和其他人的所有权限。
- 使用 sudo 运行脚本