我已在“hostname”上为用户(myuser)设置了 sudo,如下所示(sudoers 内容):
myuser ALL=(suser) NOPASSWD: /path/script*
这工作正常,所以我可以运行以下命令,以主机名上的 myuser 身份本地登录,而无需输入密码:
sudo -u suser /路径/脚本
但是,当我使用 ssh(已设置密钥,因此不需要密码)登录并运行时,如下所示:
ssh 主机名 sudo -u suser /路径/脚本
系统提示我输入密码,输入密码后我得到:
抱歉,用户 myuser 无权以 suser 身份在主机名上执行“/path/script”。
更新 通过在 sudoers 中从命令末尾删除“*”可以解决问题。添加 * 是为了允许将参数传递给脚本,但实际上似乎没有必要。仍然不明白为什么 * 允许 sudo 在本地工作,但不能通过 ssh 工作。所以问题仍然存在