运行需要 root 而不是 root 的远程 SSH 命令的最佳方式

Gra*_*ace 3 linux ssh bash sudo

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

 ssh someuser@lab-test "sudo /usr/local/scripts/user.sh add tstt7777 177700007 \"Test User 06\" "
Run Code Online (Sandbox Code Playgroud)

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

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

#Sudo
someuser  ALL = NOPASSWD: /usr/local/scripts/user.sh
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

sudo: sorry, you must have a tty to run sudo
Run Code Online (Sandbox Code Playgroud)

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

是否有什么我缺少的东西可以通过 sudo 使我的方法工作?

有没有我在 SSH 或 BASH 中没有考虑过的更好的方法?

ana*_*phe 5

运行 visudo 并注释掉如下:

#Default requiretty
Run Code Online (Sandbox Code Playgroud)