我有一个简单的 shell 脚本,它使用了该killall
命令。我想在无需输入密码的情况下运行此命令。我已将visudo
以下行插入其中:
anthony localhost = (root) NOPASSWD: /usr/sbin/myscript
我关闭终端,重新打开它,并发出脚本命令。我立即收到输入密码的提示。
我做错了什么?这是正确的方法吗?
答案1
用你的主机名替换 localhost,或者如果你的 sudoers 文件没有在其他主机上分发,则使用 ALL
anthony ALL= (root) NOPASSWD: /usr/sbin/myscript
编辑:
脚本可能会被环境参数欺骗。将 killall 命令 sudo 到脚本中比 sudo 脚本本身更安全(也更易于使用)。完整的 killall 命令及其参数可以放入 sudoers 文件中,从而限制 sudo killall 的使用。