我正在努力运行以下命令:
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命令一起添加即可。