运行需要 root 权限但不需要 root 权限的远程 SSH 命令的最佳方式

运行需要 root 权限但不需要 root 权限的远程 SSH 命令的最佳方式

我正在努力运行以下命令:

 ssh someuser@lab-test "sudo /usr/local/scripts/user.sh add tstt7777 177700007 \"Test User 06\" "

长话短说,我需要以远程计算机的 someuser 身份使用 ROOT 权限运行 user.sh 脚本。但是,我不希望 someuser 能够运行任何其他命令、打开 shell 或以其他方式访问系统。用户只需使用多个动态参数运行该脚本即可。

我已经处理了公钥交换,并且在 sudo 中添加了权限:

#Sudo
someuser  ALL = NOPASSWD: /usr/local/scripts/user.sh

但我收到以下错误:

sudo: sorry, you must have a tty to run sudo

我查看了 ssh 中的“Command=”函数,但我的理解是,这只会运行指定的命令,并且不允许按照我的调用传递参数。

我是否缺少了一些东西来使我的方法通过 sudo 工作?

在 SSH 或 BASH 中是否存在我尚未考虑的更好的方法?

答案1

运行 visudo 并注释掉以下内容:

#Default requiretty

答案2

只需添加-t(伪 tty)选项以及 ssh 命令。

相关内容