在ssh上使用sudo运行多个命令

时间:2020-04-23 11:03:25

标签: shell sudo

我正在使用Redhat 7.8系统,并尝试从远程Jenkins调度程序运行类似的命令。 该命令类似于: ssh userA@host sudo -u userB -- sh -c 'whoami; whoami' 输出是

userB

userA

我期望输出为:

userB

userB

无法解决此问题。 尝试过sudo选项,例如-i-s-- sh -c

sudoer文件具有以下配置:

userA ALL=(userB) NOPASSWD: ALL

1 个答案:

答案 0 :(得分:0)

问题在于,ssh中的单引号已被删除,这是构建一个传递给远程Shell的命令的一部分,因此您确实在运行

sudo -u userB -- sh -c whoami; whoami

通常,您总是希望将单个字符串参数传递给ssh,而不是让它将多个参数组合到单个命令中。

ssh userA@host "sudo -u userB -- sh -c 'whoami; whoami'"
相关问题