在ssh上使用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

解决方案:

问题是单引号被删除了,作为 ssh 构造一条命令传递给远程shell,所以你真正运行的是

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

一般情况下,你总是希望传递一个单一的字符串参数给 ssh而不是让它将多个参数组合成一条命令。

ssh userA@host "sudo -u userB -- sh -c 'whoami; whoami'"

给TA打赏
共{{data.count}}人
人已打赏
解决方案

VBA中的SAP脚本无法激活从SAP中自动导出的工作簿。

2022-5-11 10:00:13

解决方案

如何基于数据属性(jQuery)获取特定的HTML元素。

2022-5-11 10:00:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索