运行需要root的远程SSH命令的最佳方式,但不能以root身份运行

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

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

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

我已经处理了公共密钥交换,并且在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?

运行visudo并注释如下:

 #Default requiretty 

只需将-t (pseudo-tty)选项和ssh命令一起添加即可。